构造方法 __construct()是在类被实例化时就会被调用的方法,是类结构特有的方法,他的命名是固定的__construct。
构造方法是一类魔术方法,在PHP中,所以魔术方法的命名都是以__双下划线开头。
构造方法存在的作用就是为了在实例化类的时候初始化类中的资源(属性、方法等)
分析构造方法的一般思路:
- 确定类的功能,确定方法;
- 确定类的属性,确定是否需要初始化数据;
- 根据需要初始化的数据来确定构造方法的参数和内容;
- 实例化对象,执行构造方法。
简单的构造方法示例:
class Cons{
public function __construct($str){
echo $str;
}
}
$obj=new Cons("你好,世界");
解析:Cons是一个简单的类,在类中只有一个构造方法,构造方法的名字是固定的,是系统定义的,构造方法有一个参数str,实例化类时传入str,输出str。因为构造方法会在类被实例化时就自动调用,所以在实例化的时候没有通过对象调用任何方法,仍然实现了构造方法。
构造方法本质上是魔术方法,其本质仍然是一个方法,受访问修饰限定符的限制,也可以像寻常的方法一样被调用。
$obj->__construct("Test"); //输出Test
例:简单的购物类实现
<?php
class Shopping{
public $goodsname;
//商品名
private $goodsprice;
//价格
private $account;
//钱包余额
public $num;
//购买数量
public $username;
///用户id
public function __construct($username,$goodsname,$num){
$this->username=$username;
$this->goodsname=$goodsname;
$this->num=$num;
$this->account=$this->getAccount();
$this->goodsprice=$this->getPrice();
$this->account-=$this->goodsprice*$this->num;
$log="尊敬的客户".$this->username.",您刚刚购买了".$this->goodsname." ".$this->num."个,"."一共消费".$this->goodsprice*$this->num."元,您的钱包还剩:".$this->account."元";
echo $log;
}
public function getAccount(){
return 100;
}
public function getPrice(){
return 10;
}
}
new Shopping("老六","大宝剑",5);
?>
Comments NOTHING