我有一个非常简单的问题,我试图设置一个私有静态属性值,该值由一个附加了一些文本的常量组成:
private static $cssDirectory = APP_ROOT.'css/';
我遇到语法错误。我可以通过使私有变量不是静态的来解决这个问题,例如,用构造函数赋值,但由于我希望它是静态的,我很好奇我能对此做些什么。我也可以为整个值创建一个常量并使用它,但我很好奇为什么我不能像我尝试的那样做。也许我也做错了什么。谢谢
从PHP文档
类成员变量称为"属性"。。。它们是通过使用一个关键字public、protected或private来定义的,后跟一个普通变量声明。此声明可能包括一个初始化,但此初始化必须是一个常数值——也就是说,它必须能够在编译时进行求值,并且必须不依赖于运行时信息才能进行求值。
连接是一种运行时操作。
您不需要在构造函数中实例化和设置属性值。。。。您可以编写一个静态setter方法,而不是
还需要注意的是,PHP 5.6确实允许对类属性进行这种类型的初始化
编辑
静态setter方法示例:
private static $cssDirectory;
public static setCssDirectory() {
self::$cssDirectory = APP_ROOT.'css/';
}
然后你打电话给
myClassName::setCssDirectory();
在其他任何事情之前