为什么我不能做到这一点:调用第二类静态方法来声明变量的类
class MyClass{
public $dir = 'root/'.Util::getDir();
public function getURL($file){
$fullUrl = $this->dir . $file;
return $fullUrl;
}
}
echo MyClass::getUrl('my.pdf');
基本上,问题出在第二行。在类中声明变量时,我无法调用静态方法。
我想知道如果我第一次不能使用__construct方法来设置这个变量,但我不知道构造方法是否会运行,如果类/方法被称为stataically像: 'echo MyClass :: getUrl('my.pdf');' – 2012-07-06 10:51:06
我们刚刚完成了更新。保持静态和非静态方法和属性在你的头脑和编程中分开。如果属性或方法具有特定于对象的上下文或功能,则它不能是静态的。它必须是'$ a-> property'的形式。 V.V.如果它在所有类对象中不变,那么它确实应该是静态的。 – TerryE 2012-07-06 10:57:13
@ user1364793,__construct()在执行'new ClassName()'时运行如果要初始化静态属性,则创建一个静态方法,比如说'setup()'并调用'ClassName :: setup()'作为你的脚本初始化 – TerryE 2012-07-06 14:31:11