我在Yii框架上看过几次这种语法的用法。我尝试寻找解释,但没有例子。如果可能的话,链接将会很好。它类似于class::model()->function();
这是什么意思在PHP() - >
我的理解是模型是类的一个对象,因此它可以访问函数。所以我试图编码它,但我得到“调用成员函数sound()
在非对象”。这里是我的代码
class animal
{
private static $obj;
public static function obj($className = __CLASS__)
{
return self::$obj;
}
public static function walk()
{
return "walking";
}
}
include('animal.php');
class cat extends animal
{
public static function obj($className = __CLASS__)
{
return parent::obj($className);
}
public static function sound()
{
return "meow";
}
}
echo cat::obj()->sound();
它也有什么好处?
解释了这么多,我做了if(!self :: $ obj){self :: $ obj = new $ className;} return self :: $ obj;它的工作。静态版本给我“不能访问属性cat :: $ obj”我应该改变猫类 –
中的东西我看到你的编辑,但错误是一样的。谢谢 –
你使用的是什么PHP版本? 'static'只在PHP 5.3中引入,所以如果你使用的是旧版本,它将不起作用。 (但是你不应该在这个版本以前,因为5.2已经不支持三年了,所以如果你不在5.3,这是你的升级提示) – Spudley