<?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
如何从“热门”类调用函数“解析”?
糟糕英语的好消息
答案 0 :(得分:2)
当您使用静态方法时,您无法使用$this
关键字,因为它只能在对象中使用,而不能在类中使用。
当您使用new
关键字,来自某个类的创建和对象时,如果您尚未使用新的关键字,则$this
将无法使用static
对象
要使代码正常工作,要保持静态,您必须使用Scope Resolution Operator (::)
keyowrd和static
,因为您的方法位于父类中且不受限制,请使用{{1} }关键字来调用父静态方法。
示例:
class Popular
{
public static function getVideo()
{
return static::parsing(); //Here
}
}
答案 1 :(得分:1)
将return $this->parsing();
更改为return self::parsing();