Blogger Information
Blog 46
fans 3
comment 2
visits 39478
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP类属性的查询和设置 201年5月2日
墨雨的博客
Original
980 people have browsed it

本次练习着重掌握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

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post