each PHP
錯誤資訊
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 23
Parse 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", "" );}
回複討論(解決方案)
為什麼要這樣寫呢?
$val = each( &$var )[1];
$key = each( &$var )[0];
這樣不行嗎?
$val = each( $var )[1];
$key = each( $var )[0];
寫作這樣不是更好?
list($key, $val) = each( $var );
為什麼要這樣寫呢?
$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 的文法規則就卡死,那你就要想想你的問題出在哪裡了
沒道理的!
你不能因為你的程式有問題就亂改一氣
each( &$var ) 出錯的原因是不能這樣傳遞引用,這是 php 5.3 才有的約定
而 each( $var )[0] 這樣的寫法是 php 5.3 才有的
如果同時遵守 php 5.3 的文法規則就卡死,那你就要想想你的問題出在哪裡了 哦,我的生產環境是php5.2.6的,這個按照list($key, $val) = each( $var );這樣改就卡死了
do while(1) 無限迴圈沒有退出的語句,為何會不卡?
那你 print_r($_POST['var']); 貼出結果
do while(1) 無限迴圈沒有退出的語句,為何會不卡? 大俠求助,剛入門 如何退出
if ( each( &$var ) )
{
$msql->query( "update {P}_base_config set value='{$val}' where variable='{$key}'" );
break;
}
這樣就能退出了