同样没有传递过C的值,但是如果这样写:
if(isset($_GET['c'])&&$_GET['c']==$rowc['id']){
}
就不会出错,
而如果这样写:
if($_GET['c']==$rowc['id']){}
就会提示:
Notice: Undefined index: c in D:\wamp\www\neworld\products.php on line 40虽然都是用第一种方法在做,但这是为什么呢?

解决方案 »

  1.   

    isset()判断变量是否定义设置!
      

  2.   

    Notice只是提示,不算出錯信息,可以設置php.ini屏蔽這種提示,只顯示出錯信息
      

  3.   

    因为isset($_GET['c'])已经把if条件变否了,不信把isset放后面试试
    接受不稳定的变量时都用用 可以避免很多不必要的错误
      

  4.   

    正确的
    也就是说isset($_GET['c'])为false的时候后面的$_GET['c']不执行了.所以没有报错
      

  5.   

    只解释第一个不出错的原因
    当$_GET['c']未定义时
    isset($_GET['c'])返回假
    那么
    isset($_GET['c'])&&$_GET['c']==$rowc['id'] 最终结果一定为假
    所以系统就没有必要检测$_GET['c']==$rowc['id']的真假