public static $config = array(
'base_url' => '',
'environment' => '',
'database' => array(
'dbdriver' => '',
'dbhost' => '',
'dbname' => '',
'dbuser' => '',
'dbpass' => ''
),
我想访问base_url
密钥并将其分配给新的静态属性$ app,但它给出了意外[
的语法错误
public static $app_path = self::config['base_url']; //unexpected [ error
答案 0 :(得分:2)
您想要访问变量,因此您必须添加$
。
self::$config['base_url']
详细了解here。
不幸的是,您无法将任何变量(甚至是静态)分配给其他静态属性,如链接手册页中所示。
与任何其他PHP静态变量一样,静态属性只能使用文字或常量初始化;表达式是不允许的。因此,虽然您可以将静态属性初始化为整数或数组(例如),但您可能不会将其初始化为另一个变量,函数返回值或对象。
答案 1 :(得分:1)
阅读手册:
与任何其他PHP静态变量一样,静态属性只能使用文字或常量初始化;表达式是不允许的。因此,虽然您可以将静态属性初始化为整数或数组(例如),但您可能不会将其初始化为另一个变量,函数返回值或对象。
在你认为这是一个严重的限制之前,让我告诉你为什么这是一个幸福的救济:
np.unique
但是,当你引入后期静态绑定(我们都喜欢的东西)时:
class Foo
{
public static $evil = array('bar' => 123);
public static $check = self::$evil['bar'];
}
Foo::$check;//all is well
TL; TR:静态类似于超级全局:你可以用常量表达式初始化它们,但是它们不能要求初始化状态,这将是初始疯狂
答案 2 :(得分:1)
您已经启动了(静态)属性的方式尚未在PHP中实现 您可以查看此主题的解释:https://stackoverflow.com/a/1633024/4098311
但是,这就是我在项目中的表现:
example.0.txt