批改状态:未批改
老师批语:
今天学习了创建一个具有查询器和设置器的类,并使用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)
备注:
魔术方法可以适用于所有存在或不存在的类属性,不需要再为每个属性创建对应的访问接口
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号