碰到个PHP的怪问题。有能力的朋友帮忙看下include_once ("mysql.php");
$mysql=new mysql; 
$mysql->__construct("127.0.0.1","root","passw123","tb_db","0","GB2312");mysql.php中函数:
    /*构造函数*/
    public function __construct($db_host, $db_user, $db_pwd, $db_database, $conn, $coding) { 
!isset($db_host)?print "It's empty .":print "It's $db_host .";这里会 提示 It's empty
传进去的参数 为什么变空值了

解决方案 »

  1.   

    __construct 这个是构造方法,不需要去调用。
    在new时传参数就会自动调用了。骚年,去看一下oop方面的资料吧。
      

  2.   

    class mysql { 
        private $db_host; //数据库主机 
        private $db_user; //数据库用户名 
        private $db_pwd; //数据库用户名密码 
        private $db_database; //数据库名 
        private $conn; //数据库连接标识; 
        private $result; //执行query命令的结果资源标识 
        private $sql; //sql执行语句 
        private $row; //返回的条目数 
        private $coding; //数据库编码,GBK,UTF8,gb2312 
        private $bulletin = true; //是否开启错误记录 
        private $show_error = true; //测试阶段,显示所有错误,具有安全隐患,默认关闭 
        private $is_error = false; //发现错误是否立即终止,默认true,建议不启用,因为当有问题时用户什么也看不到是很苦恼的 
      
        /*构造函数*/
        public function __construct($db_host, $db_user, $db_pwd, $db_database, $conn, $coding) { 
    !isset($db_host)?print "It's empty .":print "It's $db_host .";
    $this->db_host = $db_host; 
            $this->db_user = $db_user; 
            $this->db_pwd = $db_pwd; 
            $this->db_database = $db_database; 
            $this->conn = $conn; 
            $this->coding = $coding; 

            $this->connect(); 
        } 请问怎么传这些参数进来?NEW的时候?
      
      

  3.   

    $mysql->__construct(  构造函数不能这么调用,因为new一个class的时候他会被自动调用修改成下边的方式就好了.
    $mysql=new mysql("127.0.0.1","root","passw123","tb_db","0","GB2312");
      

  4.   

    /*构造函数*/
    public function __construct($db_host, $db_user, $db_pwd, $db_database, $conn, $coding) { 应写作
    public function __construct($db_host="127.0.0.1",$db_user="root",$db_pwd="passw123",$db_database="tb_db",$conn="0",$coding="GB2312") {这样在 $mysql = new mysql; 时就没有问题了知之为知之,不知为不知。是知也
    没有什么可笑的
      

  5.   

    楼主你在实例化这个类的时候给予参数即可、$mysql=new mysql; 
    $mysql->__construct("127.0.0.1","root","passw123","tb_db","0","GB2312");这样的写法是错误的、构造函数初始化就会调用。$mysql=new mysql("127.0.0.1","root","passw123","tb_db","0","GB2312");这样写才是的。
      

  6.   

    construct是这个类建立的时候就会自己执行的,所以你创建调用了!
    还有那个笑人家的 不解答就算了 还这样...