为什么PHP Notice:  Undefined variable。脚本就会中断执行?

解决方案 »

  1.   

    我的意思是, 服务器环境是iis8+php5.3n 通过phhstudy安装的,但是装好后,如果脚本中有使用事先未声明的变量,有这样的警告级别的事件的时候,脚本就为中断不执行下面的代码,抛出警告信息。在是怎么回事啊
      

  2.   

    <?php
    $pageName = '';
    $needDb = true; //enable db
    require_once "inc/init.php";
    $parent=isset($_GET["parent"])? $_GET["parent"] : 0;
    $rs_parent = $config[DAOIMPL]->query("select * from album_parent order by id desc");$where='';
    if(!empty($keywords)) $where=' and album.img_name like \'%'.$keywords.'%\'';
    if(!empty($parent)) $where.=' and pid='.$parent;
    $rs= $config[DAOIMPL]->query("select album.*, album_parent.id as parentid, album_parent.parent_name as parentname from album inner join album_parent on album.pid=album_parent.id $where order by album.id desc");
    $p=isset($_GET["p"])? $_GET["p"] : 1;
    ?>比如上面的$kyewords 没有事先声明  脚本就抛出就会出现警告 脚本就中断了。下面的代码也不执行了。
      

  3.   

    你举得例子真不咋样!
    1、empty($keywords) 不会出现警告,尽管 $keywords 不存在
    2、之后的代码中并没有输出,如何能判定就中断执行了?
      

  4.   


    <?php
    echo $keywords;
    echo "执行了没有";
    ?>上面的代码执行结果如下:
    PHP Notice:  Undefined variable: keywords in E:\WEB\16xinye\album\Templates.php on line 2
      

  5.   

    可能 phpstudy 自带的 php 是他自己修改过的吧
      

  6.   

    按理说出现notice 错误,程序是不会中断的。也就是说#5的代码会输出‘执行了没有’。