任何php版本都不支持函数的“重载”
难道php4.2.2支持吗?贴出完整的代码!!!

解决方案 »

  1.   

    例如:    class Column {
            var $caption;
            var $field;
            function Column() {
                $this->caption = "";
                $this->field   = "";        }        function Column($caption, $field) {
                $this->caption = $caption;
                $this->field   = $field;
            }    }php4.2.2下面很正常,到php4.3.1就不行了
      

  2.   

    这叫重载?你都这么写code了,干吗不顺便把第一个function删掉
      

  3.   

    首先,从名词定义上来讲,这是类的方法的重载,而不是函数的重载
    其次,这种写法在php4.3.0以前是允许的,但也不多见。由于易产生误解而被取消了没有办法,你只能修改程序了其实
            function Column() {
                $this->caption = "";
                $this->field   = "";
            }

            function Column($caption='', $field='') {
                $this->caption = $caption;
                $this->field   = $field;
            }
    是一样的
    设置参数的初值后,调用是就可以不给参数了因此
            function Column() {
                $this->caption = "";
                $this->field   = "";
            }
    也就没有存在的必要了
      

  4.   

    用缺省参数
    class Column {
            var $caption;
            var $field;        function Column($caption = '', $field = '') {
                $this->caption = $caption;
                $this->field   = $field;
            }    }
      

  5.   

    习惯了java的写法
    也以为4.2跟4.3都是php4,不会相差很大
    到deploy时才发现这个问题