我的项目有问题。我想在私有静态变量中访问我的env值数据,但发现错误Constant expression contains invalid operations
。不知道该如何解决。
这是我的代码
private static $session_link = [
'local' => env('LOCAL_URL'),
'production' => env('PRODUCTION_URL')
];
预先感谢
答案 0 :(得分:0)
不可能编写这样的代码。如here所述:
此声明可能包含初始化,但这 初始化必须是一个常量值-也就是说,它必须能够 在编译时进行评估,并且不得依赖于运行时 信息以便进行评估。
完成这项工作的唯一方法是:
private static $session_link = [];
public function __construct()
{
self::session_link = [
'local' => env('LOCAL_URL'),
'production' => env('PRODUCTION_URL')
];
}
TL; DR:
之所以发生这种情况,是因为PHP两次运行您的代码:首先,它正在运行以编译代码,读取所有方法和属性,并且仅在第二次运行以运行编译的代码之后。在编译过程中,PHP不了解env()
函数,这就是为什么它抛出\Error
的原因。