博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

PHP面向对象编程-构造方法

Posted on 2013-03-22 11:47  Step at a time  阅读(321)  评论(0编辑  收藏  举报

在类中自定义构造方法的基本语法:

//php5这样
[修饰符]function __construct([参数列表]){ }
//php4 这样
[修饰符]function 类名([参数列表]){
            
        }

看个列子就很好理解了:
<?php

    class Person{
    
        public $name;
        public $age;

        //构造方法 php5 
        public function __construct($name,$age){
            
            $this->name=$name;
            $this->age=$age;
        }

        //构造方法 php4   写在这里是php5为了兼容PHP4
        public function Person($name,$age){
            
            $this->name=$name;
            $this->age=$age;
        }

        
    }

    $p1=new Person("老大",27);
    echo $p1->name;
    $p1=new Person("小二",26);
    $p1=new Person("小三",24);

?>

注意地方:

$this 的理解:

1、$this 本质可以理解就是这个对象的地址

2. 哪个对象使用到$this, 就是哪个对象地址

3. $this不能在类外部使用
 
对构造方法的理解:
  • 构造方法名和类名相同(php4版),php5版的构造方法名可以和类名相同,也可以是__construct()
  • 构造方法的默认访问修饰符是public,同时构造方法没有返回值
  • 创建新对象成功后,系统自动的调用该类的构造方法   
  • 一个类有且只有一个构造方法,在php5后虽然__construct()  和 类名() 可以共存,但是实际上也只能使用一个。
  • 果没有给类自定义构造方法,则该类使用系统默认的构造方法
  • 如果给类自定义了构造方法,则该类的默认构造方法被覆盖。