博主信息
博文 46
粉丝 3
评论 2
访问量 47064
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP类属性的查询和设置 201年5月2日
墨雨的博客
原创
1144人浏览过

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

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

实例

<?php

/*
 * 库存商品信息.
 */

/医院
 * 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类实例化,同时访问、设置固有属性,访问设置不存在的属性


实例

<?php

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

require './class/KuCun.php';

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

//测试魔术方法__get()

echo '名称: ',$kucun->mc,'<br>';
echo '数量: ',$kucun->sl,$kucun->dw, '<br>';
echo '单价:' ,$kucun->dj, '<br>';
//获取一个不存在的属性
echo '零售价:', $kucun->lsj, '<br>';

echo '<hr>';

//测试魔术方法: __set()
$kucun->mc = '四配套';
$kucun->sl = 5;
$kucun->dj = 5000;
echo '名称: ',$kucun->mc,'<br>';
echo '数量: ',$kucun->sl,$kucun->dw, '<br>';
echo '单价: ',$kucun->dj, '<br>';
//给一个不存在的属性赋值,类中并无hobby字段
$kucun->lsj = 7600;
echo '零售价:', $kucun->lsj, '<br>';

运行实例 »

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

demo.php运行截图

草图.png

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学