Heim >Backend-Entwicklung >PHP-Tutorial >Problem mit $this in der statischen PHP-Funktion
Klasse A{
<code> public $age = 50; private $money = 2000; static public $head = 1; public function tell(){ echo $this->age,'<br />'; echo self::$head,'<br />'; } static public function sayMoney(){ echo $this->money,'<br />'; }</code>
}
Klasse B erweitert A{
<code> public $age = 22; private $money = 10; public function subtell(){ parent::tell(); echo $this->age,'<br />'; } public function subMoney() { parent::sayMoney(); echo $this->money,'<br />'; }</code>
}
$b = new B();
$b->subtell();//22 1 22;
Echo '
Der letzte Satz meldet einen Fehler bei der Verwendung von $this, wenn nicht im Objektkontext
Aber $this ist nicht gebunden, wenn subMoney() aufgerufen wird, $this zeigt auf das b-Objekt und dann wird parent::sayMoney() ausgeführt. Da es statisch aufgerufen wird, sollte $this nicht 2000 erhalten, wenn sayMoney() ausgeführt wird. Es ist dasselbe wie das vorherige $b->. Was ist der Unterschied beim Aufruf von subtell();