PHP5.4通过引用传递调用时间-如何修复?

PHP5.4通过引用传递调用时间-如何修复?,php,array-walk,Php,Array Walk,我的问题是我得到了错误 PHP致命错误:调用时间传递引用已在中删除 我发现了一些类似的问题 但是没有任何东西提供了一个reals,它回答了如何解决需要在运行时将传递的值声明为refreference的情况,例如,无法更改函数声明的buildin函数 e、 例如: 我尝试使用此解决方案使用以下代码更改数组的索引: 函数重新索引(&$v、$k、&$aReindexed) { $knowed=$k+100; $aReindexed[$knowed]=$v; } $aTest=数组(4,“f”

我的问题是我得到了错误

PHP致命错误:调用时间传递引用已在中删除

我发现了一些类似的问题

但是没有任何东西提供了一个reals,它回答了如何解决需要在运行时将传递的值声明为refreference的情况,例如,无法更改函数声明的buildin函数

e、 例如:

我尝试使用此解决方案使用以下代码更改数组的索引:

函数重新索引(&$v、$k、&$aReindexed)
{ 
$knowed=$k+100;
$aReindexed[$knowed]=$v;
}
$aTest=数组(4,“f”,“测试”);
数组遍历($aTest、$reindex、&$AREDINDEX);
该阵列不工作(新阵列未更改且保持为空)

它可以工作,但在PHP5.4及更高版本中不起作用

那么,如何处理这种情况呢


p、 如果有人喜欢说“将u reindex函数中的$k变量声明为refreference”,那么这是行不通的(这是我第一次尝试)

我找到了一种可能对某些人有帮助的方法

$aTest=数组(4,“f”,“测试”);
$aReindexed=array();
数组_walk($aTest,函数(&$v,$k)使用(&$aReindexed){
$knowed=$k+100;
$aReindexed[$knowed]=$v;
} );
打印(已编入索引);
这可以在PHP5.4及以上版本中使用

但是它不适用于较低的php版本,并且您不能将它与已经存在的(非匿名)回调函数一起使用,因为use关键字仅在创建新的闭包函数时起作用