Olağandışı OO davranış?

2 Cevap php

Burada bazı php kodu:

class A {
  private function action(){
    echo 1;
  }
  public static function callAction(A $a){
    $a->action();
  }
}

$a = new A;
A::callAction($a);

Birisi neden nesne yöntemi nasıl kod diğer dillerde çalışmaktadır aşağıdaki gelmez statik yöntem bağlamlarından vissible does bana açıklayabilir??

2 Cevap

Anahtar kelime private işlevi bu içinde class değil, yalnızca bu içinde erişilebilir olması anlamına geliyor object. Davranış bildiğim tüm dillerde aynıdır.

Bir nesne A :: callAction () parametre olarak geçirilen sizin $ olarak, onun yöntemlerden birini, statik veya değil arayabilirsiniz.

Ve A sınıfı uygulanmasında A :: callAction (A) olduğu gibi, bir-> eylem $ çağırabilirsiniz.

Basit? =)