Ale*_*lex 4 php variables function
为什么我用这段代码得到解析错误:
$func = "do_{$something}" = $func();
?
它应该是正确的,因为
$func = "do_{$something}";
$func = $func();
Run Code Online (Sandbox Code Playgroud)
作品...
以此代码为例:
$a = $b = 3;
Run Code Online (Sandbox Code Playgroud)
如果赋值从左侧起作用,则将其解析为:
$a = $b;
$b = 3;
Run Code Online (Sandbox Code Playgroud)
这会给你一个未定义的变量错误.
相反,它被解析为:
$b = 3;
$a = $b;
Run Code Online (Sandbox Code Playgroud)
您要做的是等同于以下内容:
"do_{$something}" = $func();
$func = "do_{$something}";
Run Code Online (Sandbox Code Playgroud)
这显然有语法错误.您的第二个代码块读取不好,因为您正在使用函数调用的结果覆盖函数名称变量.更简洁的方法是:
$result = call_user_func('do_' . $something);
Run Code Online (Sandbox Code Playgroud)