博客列表 >创建一个类

创建一个类

其琛的博客
其琛的博客原创
2018年05月03日 09:59:211087浏览

php类代码如下

<?php
class lei
{
//    声明类属性
public $name = '';
//这种声明可以直接访问调用
private $age = 18;
//私密的,调用需要端口
private $grade = 66;

private $data=[];
//构建类方法
public function __construct($name = '',$age = 18,$grade = 66)
{
    $this->name = $name;
    $this->age = $age;
    $this->grade = $grade;

}
//魔术方法:查询器__get()
    public function __get($age){
//    检测访问不存在的值给出提示
        $msg = null;
        if(isset($this->$age)){
            $msg=$this->$age;
        } elseif (isset($this->data[$age])) {
            $msg = $this->data[$age];

        } else {
            $msg = '无此属性';
        }
        return $msg;
}
//魔术方法:设置器———set()
    public function __set($grade, $value)
    {
        //完善设置器,实现对不存在属性的创建
        //如果访问的是已存在的属性,则直接输出
        if (isset($this->$grade)) {
            $this->$grade = $value;
        } else {
            //如果属性不存在,则创建它并保存到类属性$data数组中
            $this->data[$grade] = $value;
        }

    }

}

调用代码如下

<?php
require '作业30.php';
$lei = new lei('赵雷',20,90);
//测试——get()方法
echo '姓名:'.$lei->name.'<br>';
echo '年龄:'.$lei->age.'<br>';
echo '成绩:'.$lei->grade.'<br>';
echo '爱好:'.$lei->hobby.'<br>';
//不存在属性
//测试-set()方法
$lei->name = '韩梅梅';
$lei->age = '21';
$lei->grade = '89';
//给一个不存在属性
$lei->hobby= '赵雷';
echo '姓名:'.$lei->name.'<br>';
echo '年龄:'.$lei->age.'<br>';
echo '成绩:'.$lei->grade.'<br>';
echo '爱好:'.$lei->hobby.'<br>';
echo '用户自定义属性<pre>'.print_r($lei->data,true).'</pre>';

样式如下DKTV22FT1H`3%8)[FX}[JSA.png

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