提问人:Codemonkey 提问时间:3/2/2015 最后编辑:Codemonkey 更新时间:3/4/2015 访问量:123
自从从 5.5.22 升级到 5.6.6 后,无法将变量变量传递到 PHP 中的函数中?
Can't pass a variable variable into a function in PHP since upgrading from 5.5.22 to 5.6.6?
问:
在我升级之前,这行代码运行良好,现在没有:
123: $thisRow[] = displayR(${"sR{$i}S1"}, ${"nR{$i}S1P"});
我收到此错误:
Undefined variable: sR1S1 in script.php on line 123
解决方法是先手动分配它们
$s = ${"sR{$i}S1"};
$n = ${"nR{$i}S1P"};
$thisRow[] = displayR($s, $n);
有没有办法让它像以前一样在一行中工作?有谁知道为什么它不再有效?
我应该补充一点,我已经尝试过使用
var_dump(${"sR{$i}S1"});在上一行,它被定义,并具有我期望的值。
我在谷歌或 SO 上找不到任何关于这种行为的提及,我想知道这是否是一个错误而不是故意的。
答:
0赞
Codemonkey
3/4/2015
#1
我相信这是一个 opcache 错误。
在相关文件上禁用 opcache 将恢复预期行为。
我在以下位置提交了一份(相当无用的)错误报告:
https://bugs.php.net/bug.php?id=69159
显然已修复并关闭:
http://git.php.net/?p=php-src.git;a=commitdiff;h=a29b64fc1029b4121e3e9ff20901c35ad600b4da
下一个:JavaScript 变量变量
评论