我不太确定以下对象实例化叫什么,但它来自我正在阅读的一篇文章。
class foo
{
function out()
{
return 'hello';
}
}
echo (new foo())->out();
该对象将自动实例化并调用 out 方法。但我真正不明白的是,当我将out()方法重命名为虚构方法时,我得到这样的错误:
例:
class foo
{
function out()
{
return 'hello';
}
}
echo (new foo())->ou();
Fatal error: Call to undefined method foo::ou() in ...
此方法是否以某种方式称为静态方法?
::
不代表static method
,这是一个误解。::
是一个"范围解析运算符",它表示通过其类谓词全名来标识方法。
所以这仅仅意味着:"由类'foo'定义的方法'ou'"。不多也不少。
No.该错误仅指示该方法不存在。它始终显示此错误::
,无论您是否以静态方式调用该方法。如果将代码更改为:
$foo = new foo();
echo $foo->ou();
根据注释中的请求的第二个代码示例:
$moo = new moo(); // Parentheses optional, I guess
$foo = new foo($moo);
$foo->out();