PHP:无法为私有静态属性设置值


PHP: Cannot set a value for a private static property

我有一个非常简单的问题,我试图设置一个私有静态属性值,该值由一个附加了一些文本的常量组成:

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();

在其他任何事情之前