这个定义的是常量,可以当全局变量用,比起global定的变量来还好用些
如果是在多个函数里都要用到同一个全局变量的话,则在每一个函数里都要重新用global声明一次,很麻烦
如果是用define定义的,就方便多了,在函数可直接引用,而且还让你省输一个@符号哦

解决方案 »

  1.   

    还是无法理解;程序如下:
    if(!defined("__CLASS_PHPCLASS__"))
    {
        define("__CLASS_PHPCLASS__",1);    include_once(dirname(__FILE__)."/functions.inc.php");    class sysClass{        var $err;        function sysClass()
            {
                        }     function getSysMsg($num,$otherMsg='')
            {
                    }    }// end class
    }// end if defined这个和我直接写CLASS有何区别?另外也没有哪里用到了这个常量啊
      

  2.   

    为了防止重复定义类
    其实这样写并不好,php已经提供了检查类是否存在的函数了class_exists
    (PHP 4, PHP 5)class_exists -- 检查类是否已定义
    描述
    bool class_exists ( string class_name )如果由 class_name 所指的类已经定义,此函数返回 TRUE,否则返回 FALSE。if(! class_exists('sysClass'))
    class sysClass {
    }
    不是很简单吗?干嘛非要模仿c呢?
      

  3.   

    xuzuning(唠叨)
    那样多麻烦,一般都是为了防止重复定义或防止没有定义,不让浏览器直接访问某些文件
      

  4.   

    if(!defined(....))
    这种写法是从C/C++里面沿袭过来的。楼上什么意思??
      

  5.   

    每个人的写法不一样吧!我还是比较喜欢使用class_exists函数.
      

  6.   

    其实都不用..
    include_once或
    require_once就解决了.
      

  7.   

    说得我还是很晕,是防止重复定义类的话defined("__CLASS_PHPCLASS__")这里面的
    "__CLASS_PHPCLASS__"这个常量就是类名?为何不写为defined("sysClass")?,PS,这些喜悦村里的LWG的框架里面的代码,每个类前都是这样写的
      

  8.   

    作为一个框架,用这类办法防止用户多次include是有用的
    程序员也不是总是很明白的常量用这种BT的名字主要是防止和用户的常量重名