!defined('MVMMALL_SCR') && define('MVMMALL_SCR','');
一个程序里面的这句看不懂,请懂的大哥帮忙解释下,刚学PHP!
谢谢啦!

解决方案 »

  1.   

    常量 MVMMALL_SCR 没有定义或者是空
      

  2.   

    错了 应该是常量 MVMMALL_SCR 没有定义和空值
      

  3.   


    !defined('MVMMALL_SCR')  //这句和判断语句结合在一起表示如果没有定义 MVMMALL_SCR 常量,则条件成立
    !defined('MVMMALL_SCR') && define('MVMMALL_SCR','')  //如果没有定义 MVMMALL_SCR 常量,则条件成立;并在判断该条件的同时定义MVMMALL_SCR常量为空字符串
      

  4.   

    你的代码是!defined('MVMMALL_SCR') && define('MVMMALL_SCR',''); 还是
    !defined('MVMMALL_SCR') && defined('MVMMALL_SCR','');??虽然差一个,但是 define和defined是不同的。
      

  5.   

    defined 是判断常量是否定义,返回bool值;
    而 define 这个函数只是用来定义一个常量,也是返回bool值
      

  6.   

    !defined('MVMMALL_SCR') && define('MVMMALL_SCR','');
      

  7.   

    如果是这样也没什么意义啊
    !defined('MVMMALL_SCR') && defined('MVMMALL_SCR','')又不是判断...
      

  8.   

    它这种写法是可以接受的。$re=define('aa',''); //定义一个名为aa的常量,定义成功则返回true
    var_dump($re);
      

  9.   

    !defined('MVMMALL_SCR') && define('MVMMALL_SCR','');
    这样理解
    判断MVMMALL_SCR是否存在 如果不存在则赋空字符窜
      

  10.   


    define('va','李四'); //
    if(!defined('va') && define('va','张三')){
    echo '用户没有定义常量va,不过系统定义了常量va:'.va;
    }else{
    echo '用户自定义了常量va:'.va;
    }
      

  11.   


    虽然结果是这样说,可是,逻辑上不能这样理解。
    define也执行了一次判断,在常规状态下,define永远返回true.
    你看看这个例子:
    if(!defined('va') && !define('va','张三')){
    echo '用户没有定义常量va,不过系统定义了常量va:'.va;
    }else{
    echo '用户自定义了常量va:'.va;
    }我们预先没有定义常量va,PHP执行到 && 连接符后,继续判断define的值,现在可以看到,PHP执行的是else部分,尽管 !defined('va')  成立,但 !define('va','张三')并不成立。
      

  12.   

    如果MVMMALL_SCR没有定义
    则 定义为空字符串
      

  13.   

    楼主的那句没错 
    !defined('MVMMALL_SCR') && define('MVMMALL_SCR','');
    这句话主要是判断前面的没有定义
    通过 采用&& 这个逻辑运算符 执行的本质
    && 是第一个为true 就执行第二个
    如果第一个为false 就不执行后面
    所以 当MVMMALL_SCR 已经定义过 就不会执行后面的define
    没有定义过就执行后面的define