self
ist eine statische Bindung. Mit anderen Worten, self
wurde explizit an den Klassennamen gebunden, egal wie viele geerbt wurden
, unabhängig davon, ob es sich um eine Unterklasse
oder eine übergeordnete Klasse
handelt, die auf sich selbst zugreift, stellt self
die aktuelle Klasse
dar >. Wenn Sie Besucher selektiv unterstützen möchten, müssen Sie statische verzögerte Bindung
verwenden.self
是一种静态绑定,换言之就是当类进行编译的时候self
已经明确绑定了类名,因此不论多少继承
,也不管是子类
还是父类
自己来进行访问,self
代表都是当前类
。如果想要选择性的来支持来访者,就需要使用静态延迟绑定
.
定义:静态延迟绑定
,即在类内部用来代表类本身的关键字部分不是在类编译时固定好,而是当方法被访问时动态的选择来访者所属的类。静态延迟绑定
就是利用static
关键字代替静态绑定self
,静态延迟绑定需要使用到静态成员的重写。
1.静态延迟绑定:使用static
关键字代替self
进行类成员
statische verzögerte Bindung
, das zur Darstellung der Klasse innerhalb der Klasse verwendet wird Das Schlüsselwort Der Teil selbst ist beim Kompilieren der Klasse nicht festgelegt, aber die Klasse, zu der der Besucher gehört, wird beim Zugriff auf die Methode dynamisch ausgewählt. Statische verzögerte Bindung
verwendet das Schlüsselwort static
, um die statische Bindung zu ersetzen. self
erfordert das Umschreiben statischer Mitglieder. 1. Statische verzögerte Bindung
: Verwenden Sie das Schlüsselwortstatic
anstelle von self
, um auf Klassenmitglieder
zuzugreifen <?php //父类 class People{ public static $name = 'People'; public static function showName(){ //静态绑定 echo self::$name,'<br/>';//self //静态延迟绑定 echo static::$name,'<br/>'; } } //子类 class Man extends People{ //重写父类静态属性 public static $name = 'Man'; //静态属性因为存储在类内部,因此不会覆盖 } //子类访问 echo Man::$name."<br>";//Man Man::showName();//输出People和Man ?>
//接上述代码 People::showName();//输出People People
Das obige ist der detaillierte Inhalt vonSelf stellt in PHP die aktuelle Klasse dar. Wie erhält man also die Daten der Zugriffsklasse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!