PHP __construct 构造方法及简单示例

发布于 2022-11-22  1838 次阅读


构造方法 __construct()是在类被实例化时就会被调用的方法,是类结构特有的方法,他的命名是固定的__construct

构造方法是一类魔术方法,在PHP中,所以魔术方法的命名都是以__双下划线开头。

构造方法存在的作用就是为了在实例化类的时候初始化类中的资源(属性、方法等)

分析构造方法的一般思路:

  1. 确定类的功能,确定方法;
  2. 确定类的属性,确定是否需要初始化数据;
  3. 根据需要初始化的数据来确定构造方法的参数和内容;
  4. 实例化对象,执行构造方法。

简单的构造方法示例:

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);
?>
届ける言葉を今は育ててる
最后更新于 2022-11-22