PHP引用静态变量中的其他静态变量

时间:2014-06-06 18:49:00

标签: php

如何在另一个静态变量中引用静态变量?

  class Test{
     public static $role = 3;
     public static $factory = ['role' => self::$role];
  }
  print_r(Test::$factory);

链接:https://ideone.com/0je4Mm

错误:PHP Parse error: syntax error, unexpected '$role' (T_VARIABLE), expecting identifier (T_STRING) in /home/PpylVI/prog.php on line 4

1 个答案:

答案 0 :(得分:4)

你无法向运行时评估的类属性,例如,前一个变量的值。

  

这个声明可能包括初始化,但是这个   初始化必须是一个常量值 - 也就是说,它必须能够   在编译时进行评估,不得依赖于运行时   信息以便进行评估。

取自手册here

这两项工作都是:

<?php

   class Test{
    const ROLE = 3;
    public static $factory = ['role' => self::ROLE];
  }
  print_r(Test::$factory);

/*Array
(
    [role] => 3
)
*/


  class Test2{
    public static $factory = ['role' => 3];
  }
  print_r(Test2::$factory);
/*
Array
(
    [role] => 3
)
*/