Heim >Backend-Entwicklung >PHP-Tutorial >Problem mit $this in der statischen PHP-Funktion

Problem mit $this in der statischen PHP-Funktion

WBOY
WBOYOriginal
2016-10-23 23:59:571072Durchsuche

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 '


';
$b->subMoney();

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();

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn