博客列表 >创建一个类--查询器:__get();设置器:__set()--2018年5月2日

创建一个类--查询器:__get();设置器:__set()--2018年5月2日

笨鸟先飞
笨鸟先飞原创
2018年05月03日 17:42:10421浏览

类:

实例

<?php
/**
 * 类的构造方法与查寻器与设置器
 */

class Desk3
{
    //类成员:属性,方法

    //类属性,初始化必须使用标量的字面量,数组也行。不能用变量,表达式,对象
    //值可给可不给,习惯性动作
    private $shape = '';//私有的,仅允许在当前类中被访问,外部不能访问

    private $color = '';

    private $size  = [];

    //声明一个构造方法:在实例化类的时候自动调用
    //构造方法也是构造器:对象属性的初始化

    public function __construct($shape='',$color='',array $size=[])
    {
        $this->shape = $shape;
        $this->color = $color;
        $this->size = $size;
    }

    //查询器__get($name)
    //双下划线开始的是:魔术方法,由系统直接调用
    //当访问一个没有权限的读取属性的时候,会自动触发这个魔术方法
   public function __get($name)
   {
       return $this->$name;

   }

   //设置器:__set($name,$value)
    public function __set($name, $value)
    {
        if($name =='color'){
            if(in_array($value,range(20,90))){
                $this->$name = $value;
            }

        }else{
            $this->$name = $value;
        }
    }
}

运行实例 »

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


demo:”

实例

<?php
/**
 *
 */
header('Content-type:text/html;charset=Utf-8');
require 'class/Desk3.php';

$desk3 = new Desk3('圆型','红色',[30,49,60]);

//$desk3->shape='矩形';
echo $desk3->shape.'<br>';

echo '<hr>';

$desk3->color=80;
echo $desk3->color;

//新增属性也是可以的额
//$desk3->haha = 20;
//echo $desk3->haha;

运行实例 »

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


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议