0
<?php
class Popular
{
    public static function getVideo()
    {
        return $this->parsing();
    }
}

class Video 
    extends Popular
{
    public static function parsing()
    {
        return 'trololo';
    }

    public static function block()
    {
        return parent::getVideo();
    }
}

echo Video::block();

私は間違いなくこのようにクラスを呼び出す必要があります:

Video::block();

初期化しないでください

$video = new Video();
echo $video->block()

これではない!

Video::block(); // Only this way <<

しかし:致命的なエラー:6行目のmyFile.phpのオブジェクトコンテキストにないときに$thisを使用する

「人気のある」クラスから関数「解析」を呼び出す方法は?

悪い英語のためのSoooooooory

4

2 に答える 2

2

静的メソッドを使用しているため、$thisキーワードはオブジェクト内でのみ使用でき、クラスでは使用できないため、使用できません。

キーワード、クラスからのnew作成およびオブジェクトを使用する場合、新しいキーワードを使用していない場合は、オブジェクト$thisではないため使用できません。

コードが静的であるためには、メソッドが親クラス内にあり、そのメソッドが制限されていないため、 statickeyowrdを一緒に使用する必要があります。キーワードを使用して親静的メソッドを呼び出します。Scope Resolution Operator (::)static

例:

class Popular
{
    public static function getVideo()
    {
        return static::parsing(); //Here
    }
}
于 2010-11-09T16:30:59.690 に答える
1

return $this->parsing();に変更return self::parsing();

于 2010-11-09T16:26:23.217 に答える