意思是你的第 1 2 3 4 个参数没有
 $sysinfo=new SYSINFO($host,$user,$password,$db);这里应该加入四个参数,
因为你的类构造函数需要参数,而你又没有设置黙认值 如果你不想加的话就将
function MYSQL($host,$user,$password,$db)
{}
改成
function MYSQL($host="xxx",$user="xxx",$password="xxx",$db="xx")
{}

解决方案 »

  1.   

    你都没有指定那些参数,
    由于你的子类没有构造函数,它就会执行父类的构造函数,
    而父类的构造函数是需要参数的,你没有提供,所以出错了
    你应该在子类指定构造函数function SYSINFO($host,$user,$password,$db)
    {
        parent::MYSQL($host,$user,$password,$db);
    }
      

  2.   

    class CHECKONLINE extends MYSQL {
            //更新在线人数
            function checkonline(){
                                   $this->conn();
                                   $this->db();
                                   $sql="select * from `online`";
                                   $this->query($sql);
                                   while($result=$this->result()){
                                         if(($result[logintime]+300)<time()){
                                             $userid=$result[userid];
                                             $sqldeluserid="delete from `online` where userid='$userid'";
                                             $this->query($sqldeluserid);
                                         }
                                   }
            }
    那么这个子类为什么没有问题呢?已经测试过没有任何报错信息
      

  3.   

    MYSQL($host,$user,$password,$db)
    下面有参数呀,如果你下面没参数就要有构造函数.
      

  4.   

    PHP中构造函数是和类名称相同的函数
    比如:
    <?php
    class db_mysql{
        function db_mysql($host,$user,$passwd,...){
            ......
        }
        function ...
    }
    ?>
    这在PHP4中很常见,PHP5支持这么写,但是有了新的写法
    class db_mysql{
        public function __construct(...){       //__construct是默认的构造函数
            ......
        }
        public function __destruct(){           //__destruct是默认的析构函数
            ......
        }
    }还有克隆等默认方法