最近遇到一个Undefined variable的问题。
2台不同的电脑,一台电脑安装了 PHPnow ,可以正常显示,另一台电脑手动安装  php5.3, apache2, mysql5.5 ...错误地方在foreach(...){// mysql query 
$php .= '<div>'.$row[ctc].'</div>';//这一行报错
}
echo $php;问题在php.ini设置,PHPnow可能优化过php.ini,而官方的php5.3没有做任何的优化。原因是:默认的php.ini 不允许 $php. 直接使用,需要在 foreach外 进行一次定义,  $php = '';//这样就通过了
foreach(...){// mysql query 
$php .= '<div>'.$row[ctc].'</div>';
}
echo $php;请问 新任班长: php.ini 哪段代码里设置这一方面的呢?

解决方案 »

  1.   

    error_reporting = E_ALL
    修改为error_reporting = E_ALL & ~E_NOTICE
      

  2.   

    $php = '';
    foreach(...){// mysql query 
    $php .= '<div>'.$row[ctc].'</div>';//这一行报错
    }
    echo $php;
      

  3.   

    实际上这不算报错,这只是一个提示,这个改动你说对了,是从5.x的某个版本后新增的,解决的方法有很多,比较消极的做法是修改 php.ini 关闭掉错误提示,或者修改错误提示的等级。比较积极的做法是你的那种先定义变量.
    如果对于传递过来的值你可以使用isset 做一个判断即可。
    这个问题也算是10大常问问题之一了,稍后我会整理一个比较常见的问题汇总帖子。