如何静态调用方法?
<?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糟糕的英语
当你使用静态方法时,你不能使用$this
关键字,因为它只能在对象中使用,而不能在类中使用。
当你使用new
关键字,你创建和从一个类的对象 ,如果你还没有使用新的关键字,那么$this
将不可用,因为它不是一个对象
为了让你的代码工作,静态的,你必须使用static
keyowrd和Scope Resolution Operator (::)
因为你的方法在父类中,而且它没有界限,使用static
关键字来调用父类的静态方法。
例:
class Popular
{
public static function getVideo()
{
return static::parsing(); //Here
}
}
改变return $this->parsing();
return self::parsing();