分享

PHP 构造方法说明

 gearss 2016-05-28
1、构造方法的8点说明:
①构造方法名和类名相同(php4版),php5版的构造方法名可以和类名相同,也可以是__construct()
②构造方法没有返回值
③构造方法的主要作用是完成对新对象的初始化,并不是创建对象本身。
④在创建新对象后,系统会自动的调用该类的构造方法,不需要自己写代码调用   
⑤一个类有且只有一个构造方法,在php5后虽然__construct()  和 类名() 可以共存,但是实际上也只能使用一个。
⑥如果没有给类自定义构造方法,则该类使用系统默认的构造方法。 */
⑦如果给类自定义了构造方法,则该类的默认构造方法被覆盖。

⑧构造方法的默认访问修饰符是public

2、在PHP 5 中一个类可以同时有 两种形式的构造方法:
      __construct() 和 类名() , 当两个同时存在的时候,优先调用__construct(), 请大家以后使用__construct()

      两种构造函数如下:

publicfunction  __construt()
{
//函数体;
}      

publicfunction 类名()
{
//函数体;
}

     PHP4中只能有一种形式的构造函数:

publicfunction 类名()
{
//函数体;
}

3、构造方法注意事项:
(1)一旦自定义了一个构造函数,默认的构造函数就被覆盖了,这时在创建对象的时候就要使用自定义的构造函数.
(2)一个类只能有一个构造函数.(不能重载)

4、构造方法代码实例:

  1. <?php  
  2. //屏蔽程序 notice 级错误    
  3. error_reporting(E_ALL^E_NOTICE);   
  4. //php面向对象编程之构造方法:   
  5. class Person1{  
  6.        public $name;  
  7.        public $age;  
  8. }  
  9. $p1=new Person1();  
  10. //再给属性赋值  
  11. $p1->name="宋江";  
  12. $p1->age=33;  
  13. //this的理解:  
  14. class Person2  
  15. {  
  16.     public $name;  
  17.     public $age;  
  18.     //这个就是构造方法,php5独有  
  19.     public function __construct($iname,$iage)  
  20.     {  
  21.         //这里如果我们直接用$name,$age,系统认为我们是创建了两个新的变量  
  22.         //$name=$iname;  
  23.         //$age=$iage;  
  24.         //此处的$this->name、$this->age则解决了以上问题,加上$this之后该变量就是指上面创建的成员属性;  
  25.         //$this 本质可以理解就是这个对象的地址,哪个对象传递时使用到$this, 就是传递哪个对象地址;  
  1. <span style="white-space:pre">        </span>//this就相当于传的是地址,把上面$name的地址传过来了而不是再新建一个$name变量  
  1.         //注意:$this只能在类中使用,不能在类外部使用.  
  2.         $this->name=$iname;  
  3.         $this->age=$iage;  
  4.         echo "执行构造方法<br/>";  
  5.     }    
  6. }  
  7. $p1=new Person2("张清",90);  
  8. echo "我是".$p1->name."--我现在的年龄是".$p1->age."<br/>";  
  9. $p2=new Person2("宋江",33);  
  10. echo "我是".$p2->name."--我现在的年龄是".$p2->age."<br/>";  
  11.   
  12. class Cat  
  13. {     
  14.     //每一个类中必须有一个构造方法,若我们不定义,系统会自动生成  
  15.     //若不定义构造方法,则该类使用系统默认的构造方法,类中默认的构造方法如下:        
  16.     function __construt()  
  17.     {  
  18.           
  19.     }        
  20. }  
  21. $cat1=new Cat();  
  22. ?>  


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多