【发布时间】:2018-04-18 22:48:34
【问题描述】:
在创建应用程序时,我遇到了一种情况,即我有一个静态变量。
假设它是:
public static name = "abdul ahad";
在某处,我有另一个名为 user 的静态变量,它访问上面定义的静态变量名称。
public static user = self::$name;
注意:这些属性是同一类的成员。
这样做会出现以下错误。
解析错误:语法错误,意外的'$XXX' (T_VARIABLE),在第 xx 行的 C:\xxxx\xxx\xxx.php 中需要标识符 (T_STRING) 或类 (T_CLASS)
同样的概念也适用于 Java,如下所示。
public static int i = 5;
public static int j = Main.i;
public static void main(String[] args) {
System.out.println(String.format("Static j was : %d", Main.j));
所以,我想知道在 PHP 中是否有可能以及我在语法上做错了什么。如果不是,那您愿意解释一下原因吗?
【问题讨论】:
-
不,您不能基于 PHP 中的另一个属性来初始化一个属性。见stackoverflow.com/questions/477066/…
-
我可以根据另一个属性初始化一个属性。这是正确的。像 int a = 5;诠释 b = a;这是允许的。但是静态变量会出现问题。
-
您的主题链接不涉及静态内容。
-
它是否是静态的并没有任何区别。类属性只能初始化为常量值或基本表达式(自 PHP 5.6 起)。您不能引用任何其他变量(全局变量、属性等)。
-
不适用于 php 7.1
标签: java php parsing properties static