PHP显示类的属性不存在ID,PHP类属性的查询和设置 201年5月2日

本次练习着重掌握PHP类的构建、实例化及其属性的查询和重置。

类KuCun.php 以一个商品信息类,其自有属性mc、sl、dw、dj分别表示商品的名称、数量、单位、单价,并预留属性数组data用于保存实例化后用户临时添加的属性。构造方法__construct(),魔术方法查询器__get()、设置器__set()

实例

/*

* 库存商品信息.

*/

/医院

* Description of KuCun

*

* @author Dell

*/

class KuCun {

private $mc;

private $sl;

private $dw;

private $dj;

private $data = [];

//构造方法

public function __construct($mc = '', $sl = 0, $dw = '', $dj = 0.00) {

$this->mc = $mc;

$this->sl = $sl;

$this->dw = $dw;

$this->dj = $dj;

}

//魔术方法:查询器

public function __get($name) {

$msg = null;

if ( isset($this->$name)) {

$msg = $this->$name;

} elseif (isset ($this->data[$name])) {

//如果访问的是类中添加一个自定义属性 从$data数组中取值

$msg = $this->data[$name];

} else {

$msg = '属性不存在';

}

return $msg;

}

//魔术方法:设置器

public function __set($name,$value) {

if ( isset($this->$name)) {

//如果访问的是已存在的属性,则直接输出

$this->$name = $value;

} else {

//如果属性不存在,则创建它并保存到类属性$data数组中

$this->data[$name] = $value;

}

}

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

php代码demo.php将KuCun类实例化,同时访问、设置固有属性,访问设置不存在的属性

实例

/*

* 测试类(KuCun)的魔术方法:_get()和__set()

*/

require './class/KuCun.php';

$kucun = new KuCun('气缸体',2,'台',4150);

//测试魔术方法__get()

echo '名称: ',$kucun->mc,'
';

echo '数量: ',$kucun->sl,$kucun->dw, '
';

echo '单价:' ,$kucun->dj, '
';

//获取一个不存在的属性

echo '零售价:', $kucun->lsj, '
';

echo '


';

//测试魔术方法: __set()

$kucun->mc = '四配套';

$kucun->sl = 5;

$kucun->dj = 5000;

echo '名称: ',$kucun->mc,'
';

echo '数量: ',$kucun->sl,$kucun->dw, '
';

echo '单价: ',$kucun->dj, '
';

//给一个不存在的属性赋值,类中并无hobby字段

$kucun->lsj = 7600;

echo '零售价:', $kucun->lsj, '
';

运行实例 »

点击 "运行实例" 按钮查看在线实例

demo.php运行截图

23556b89d66fef21f4b7374f82a27902.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值