开启辅助访问
帐号登录 |立即注册

php面向对象编程之构造方法 __construct()

 
构造方法
构造方法是类中的一个特殊方法。当使用 new 操作符创建一个类的实例时,构造方法将会自动调用,其名称必须是 __construct() 。
在一个类中只能声明一个构造方法,而是只有在每次创建对象的时候都会去调用一次构造方法,不能主动的调用这个方法,所以通常用它执行一些有用的初始化任务。该方法无返回值。

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


2、语法:
function __construct(arg1,arg2,...)
{
    ......
}

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

4、构造方法代码实例:
【示例1】
<?php
    class Person{
                                                                                       
            public $name;        
            public $age;        
            public $sex;        
                                                                                                
        public function __construct($name="",$sex="男",$age=27){      //显示声明一个构造方法且带参数
            $this->name=$name;
            $this->sex=$sex;
                        $this->age=$age;
        }
        public function say(){
            echo "我叫:".$this->name.",性别:".$this->sex.",年龄:".$this->age;
        }   
                                                                                          
    }
?>

创建对象$Person1且不带任参数
$Person1= new Person();
echo $Person1->say();//输出:我叫:,性别:男,年龄:27

创建对象$Person2且带参数"张三"
$Person2= new Person("张三");
echo $Person2->say();//输出:我叫:张三,性别:男,年龄:27

创建对象$Person3且带三个参数
$Person3= new Person("李四","男",25);

在该例子中,通过构造方法对对象属性进行初始化赋值。

【示例2】
<?php
    class Website{
        public $name, $url, $title;
        public function __construct($str1, $str2, $str3){
            $this -> name  = $str1;
            $this -> url   = $str2;
            $this -> title = $str3;
            $this -> demo();
        }
        public function demo(){
            echo $this -> name.'<br>';
            echo $this -> url.'<br>';
            echo $this -> title.'<br>';
        }
    }
    $object = new Website('C语言中文网','http://c.biancheng.net/php/','构造函数');
?>
运行结果如下:
C语言中文网
http://c.biancheng.net/php/
构造函数






回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

友情链接
  • 艾Q网

    提供设计文章,教程和分享聚合信息与导航工具,最新音乐,动漫,游戏资讯的网站。