当我们用静态方式调用非静态函数时会发生什么? 像这样:
class test
{
public function hello()
{
return "say hello";
}
}
class foo
{
public function __construct()
{
echo test::hello();
}
}
$foo = new foo();
答案 0 :(得分:1)
您将获得Strict standards: Non-static method test::hello() should not be called statically
你的班级宣言不好,正确的方法就是这个
class test
{
public function hello()
{
return "say hello";
}
}
class foo
{
public function __construct()
{
echo test::hello();
}
}
$foo = new foo();
Laravel使用Facade
来表示您使用的是static
方法,您也可以使用Facade
来调用test::hello();
等方法
答案 1 :(得分:0)
快速回答:你得到严格的警告。
更多细节:如果在调用的函数中使用变量$ this,则引用调用函数的对象,而不是包含函数本身的类。
严格的标准:不应该调用非静态方法hello 静态地,假设来自不兼容的上下文的$ this