我想问一下构造函数的具体作用是什么,我在搜索写一个数据库连接类时,好多都用到了__construct.
我在想如果不用,如果不用__ construct,是否能连接上,请各位大虾帮忙看一下:
  class MyConn{
       public $host;
       public $name;
       public $pass;
     
      function Query(){
         $this->host =$host;
         $this->name =$name;
        $this->pass= $pass;
        mysqlc_connect($this->host,$this->name,$this->pass);
  
      } }$myconn =new MyConn();
$myconn->Query();
$myconn->host='127.0.0.1';
$myconn->name='root';
$myconn->pass='';
各位大虾帮忙看一下,这样写行不行??

解决方案 »

  1.   

    不行,写类一定要写构造函数,不写构造函数,类无法初始化.
    构造函数有两中写法:
    1.public function __construct(){}
    2.public funtion MyConn(){}{}//与类名相同
      

  2.   


    说的非常不错
    第一种是php5以后的写法, 第二种是php5之前的写法,有一些开源的代码,对这个版本兼容性做的很到位。
    public funtion MyConn(){
      return $this->__construct();
    }
      

  3.   

    不用构造函数可以这样
    $myconn->Query($host, $name, $pass); 
    //当然, 你的Query()函数里也要加入参数
      

  4.   

    楼上两位也算的上是高手了,请不要在这里胡弄初学者php中,类都有一个默认的构造函数。
    但书写类并不一定需要有构造函数,只在需要在创建实例时做一些其他工作时才需要重载构造函数
      

  5.   


    class MyConn{ 
          public $host; 
          public $name; 
          public $pass; 
          public $mysql_conn;
          function query($host,$name,$pass){ 
            $this->host =$host; 
            $this->name =$name; 
            $this->pass= $pass; 
            $this->mysql_conn = mysql_connect($this->host,$this->name,$this->pass); 
          } } $myconn =new MyConn(); 
    $myconn->query('127.0.0.1','root',''); 构造函数不一定要有,系统默认会给你添加一个无参构造器的。function Query(){ 
            $this->host =$host; 
            $this->name =$name; 
            $this->pass= $pass; 
            mysqlc_connect($this->host,$this->name,$this->pass); 
      
    }
    你看你这个函数,没有参数,$host,$name,$pass从哪里来?
    mysql_connect($this->host,$this->name,$this->pass);这个连接数据库是有返回值得,返回值不保存相当于没连接,你要利用这个连接的话怎么用?
    多看看别人写的例子和php帮助文档,谁先谁后是有逻辑顺序的,不是随便编凑在一起的。