构造方法
构造方法是类中的一个特殊方法。当使用 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/
构造函数
|