Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何静态调用方法?_Php_Oop_Methods_Method Chaining - Fatal编程技术网

Php 如何静态调用方法?

Php 如何静态调用方法?,php,oop,methods,method-chaining,Php,Oop,Methods,Method Chaining,而不是初始化它 Video::block(); 不是这个 $video = new Video(); echo $video->block() Video::block();//只有这样changereturn$this->parsing()to返回self::parsing()更改返回$this->parsing()to返回self::parsing()由于您使用的是静态方法,因此不能使用$this关键字,因为该关键字只能在对象中使用,不能在类中使用 使用new关键字时,如果未使用新

而不是初始化它

Video::block();
不是这个

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

Video::block();//只有这样change
return$this->parsing()
to
返回self::parsing()

更改
返回$this->parsing()
to
返回self::parsing()

由于您使用的是静态方法,因此不能使用
$this
关键字,因为该关键字只能在对象中使用,不能在类中使用

使用
new
关键字时,如果未使用新关键字,则
$this
将不可用,因为它不是对象

要使代码正常工作,静态代码必须使用
static
keyowrd和
范围解析操作符(:)
,因为您的方法在父类中,并且它没有边界,所以使用
static
关键字调用父静态方法

例如:

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

由于您使用的是静态方法,因此不能使用
$this
关键字,因为该关键字只能在对象中使用,不能在类中使用

使用
new
关键字时,如果未使用新关键字,则
$this
将不可用,因为它不是对象

要使代码正常工作,静态代码必须使用
static
keyowrd和
范围解析操作符(:)
,因为您的方法在父类中,并且它没有边界,所以使用
static
关键字调用父静态方法

例如:

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

在相关说明中,阅读关于后期静态绑定的内容。如果可能,您应该避免使用静态方法。不能在静态上下文中使用$this。按照下面的建议使用self(相关)和可能的副本。在相关说明中,请阅读关于后期静态绑定的内容。如果可能,您应该避免使用静态方法。不能在静态上下文中使用$this。按照下面的建议使用self。(相关)并且可能重复的
self::parsing()
将尝试调用不存在的
Popular::parsing()
。如果使用PHP5.3.0(或更高版本),则应使用后期静态绑定,即
static::parsing()
self::parsing()
将尝试调用不存在的
Popular::parsing()
。如果使用PHP5.3.0(或更高版本),则应使用后期静态绑定,即
static::parsing()
class Popular
{
    public static function getVideo()
    {
        return static::parsing(); //Here
    }
}