错误信息Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of each(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in D:\APMServ5.2.6\www\htdocs\base\admin\config.php on line 23Parse error: syntax error, unexpected '[' in D:\APMServ5.2.6\www\htdocs\base\admin\config.php on line 23错误位置代码
if ( $step == "modify" )
{
$var = $_POST['var'];
do
{
$val = each( &$var )[1];//报错
$key = each( &$var )[0];//报错
if ( each( &$var ) )
{
$msql->query( "update {P}_base_config set value='{$val}' where variable='{$key}'" );
}
} while ( 1 );
sayok( $strConfigOk, "config.php", "" );
}eachPHP
if ( $step == "modify" )
{
$var = $_POST['var'];
do
{
$val = each( &$var )[1];//报错
$key = each( &$var )[0];//报错
if ( each( &$var ) )
{
$msql->query( "update {P}_base_config set value='{$val}' where variable='{$key}'" );
}
} while ( 1 );
sayok( $strConfigOk, "config.php", "" );
}eachPHP
$val = each( &$var )[1];
$key = each( &$var )[0];
这样不行吗?
$val = each( $var )[1];
$key = each( $var )[0];写作这样不是更好?
list($key, $val) = each( $var );
你不能因为你的程序有问题就乱改一气each( &$var ) 出错的原因是不能这样传递引用,这是 php 5.3 才有的约定
而 each( $var )[0] 这样的写法是 php 5.3 才有的如果同时遵守 php 5.3 的语法规则就卡死,那你就要想想你的问题出在哪里了
{
$msql->query( "update {P}_base_config set value='{$val}' where variable='{$key}'" );
break;
}
这样就能退出了