PHP: $ this-> MethodCall () hatası verir ve CalledClass: MethodCall () çalışıyor

1 Cevap

I getDetails() dönüşlerde kendi sınıfında (yani denir sınıfı) yöntemleri çağıran başka bir sınıftan yöntemini çağırmak için çalışıyorum ve bunu yapar

$this->getAccount() ve $this->getAddress() ve ben çağırdığınızda denilen sınıfta biz $this->getAccount() ve $this->getAddress() fonksiyonu gibi yöntemler var ama

onları ben tanımsız yöntemine çağrı olarak ölümcül bir hata mesajı alıyorum, ama ben kullanıyorum bu yöntemi çağırarak çalıştığınızda CalledClassName::getAddress() ve

CalledClassName::getAddress() iyi çalışıyor daha.

Benim sorum bu sınıf alıyorum olarak (yani, calledClass) her zaman $this->getAddress() ve $this->getAccount() kullanımı olacak arıyorum sınıfıdır

diğer takım bilgi ve işlevlerini çağırarak olacağını 3 takım var getDetails() hangi istiyorsunuz dahili çağrı getAccount() ve getAddress()

fonksiyonları ve bu yüzden nasıl getDetails() işlevini arıyorum myside dolar bu konuyla ilgilenmesi gerekir.

Kod örneği

Calling Class:


CalledClass::getDetails() // Call to getDetails function in CalledClass


CalledClass::


public function postalAddress()
{
 return array(
   'addressId' => $address->addressId,
   'city' => $address->city,
   'country' => $address->country,
   'postcode' => $address->postcode,
   'stateOrProvince' => $address->stateOrProvince,
   'street' => $address->streetName,
   'streetNumber' => $address->streetNrFirst,
   'streetSuffix' => $address->streetNrFirstSuffix
  );
};

public function getAddress()
{
 return $this->postalAddress();
}

public function setAccount($account)
{
 $this->account = $account;
}

public function getAccount()
{
 return $this->find('account = 1311143','');
}



 public function getDetails()
    {

     $data = array();
     $data[$address] = $this->getAddress();
     $data[$account] = $this->getAccount();
     return $data;
    }

Şimdi yukarıdaki yöntemi kullanarak bana hata veriyor ve böylece CalledClass::getAddress() ve CalledClass::getAccount() kullanıyorum ve eğer çalışıyor ancak bu işlevi çağırmadan gibi ben chang calledclass kodu e edemeyiz başka bir takım.

Herhangi bir rehberlik ve önerileriniz?

1 Cevap

Başka bir sınıftan çağırmak için çalışıyoruz fonksiyonu static ise, bunu aramak için :: (kapsam çözünürlük operatörü) kullanmanız gerekir. Ayrıca statik özelliklerine erişmek için çalışırken aynı yoldur.

Statik yöntemler yaratılan nesnenin bir örneği olmadan çağrılabilir olduğundan, bu yöntem içinde mevcut değildir sözde değişken $ gibi statik ilan etti.

PHP: Static Keyword alınan

Için arada sizin yöntem çağrısı, diğer üyenin kodunu değiştirmek için yeteneğine sahip olmadan çalışmak için kullanmaktır CalledClass::getAddress()