今天学习了创建一个具有查询器和设置器的类,并使用php脚本正常调用,以下是相应的代码:
实例
<?php class Goods { //声明属性 private $name = ''; private $number = 0; private $price = []; //构造方法 public function __construct($name,$number,$price) { $this->name = $name; $this->number = $number; $this->price = $price; } //魔术方法:查询器 public function __get($name) { return $this->$name; } //魔术方法:设置器 public function __set($name,$value) { if(empty($value)){ $msg='信息不能为空'; if(is_array($value)){ $this->$name = [$msg,$msg,$msg]; }else{ $this->$name = $msg; } }else{ $this->$name = $value; } } }
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例
<?php require './class/Goods.php'; $goods = new Goods('可乐',6909612113716,[1,3,5]); echo '商品名称:'.$goods->name.'<br>'; echo '商品条码:'.$goods->number.'<br>'; echo '商品成本价:'.$goods->price[0].'<br>'; echo '商品销售价:'.$goods->price[1].'<br>'; echo '商品市场价:'.$goods->price[2].'<br>'; echo '<hr>'; $goods->name = '雪碧'; $goods->number = 6907878125023; $goods->price = [2,4,6]; echo '商品名称:'.$goods->name.'<br>'; echo '商品条码:'.$goods->number.'<br>'; echo '商品成本价:'.$goods->price[0].'<br>'; echo '商品销售价:'.$goods->price[1].'<br>'; echo '商品市场价:'.$goods->price[2].'<br>'; echo '<hr>'; $goods->name = ''; $goods->number = ''; $goods->price = []; echo '商品名称:'.$goods->name.'<br>'; echo '商品条码:'.$goods->number.'<br>'; echo '商品成本价:'.$goods->price[0].'<br>'; echo '商品销售价:'.$goods->price[1].'<br>'; echo '商品市场价:'.$goods->price[2].'<br>';
运行实例 »
点击 "运行实例" 按钮查看在线实例
效果展示图:
总结:
创建一个类的步骤:
1.声明属性,使用private 关键字来修饰类属性,修饰后的属性只能在本类方法中访问,不能被外部,或者子类访问
2.使用函数__construct声明构造方法
3.使用魔术方法:查询器__get($name)
4.使用魔术方法:设置器__set($name,$value)
备注:
魔术方法可以适用于所有存在或不存在的类属性,不需要再为每个属性创建对应的访问接口