PHP——_get _set 访问方法

<?php
    class test
    {
        public $name1 = "1";
        protected $name2 = "2";
        private $name3 = "3";
        //使用_get _set,避免直接对类属性的访问
        public function __get($name)    //_get方法  必须含有一个参数
        {   //当对象调用一个非公有属性(或不存在的属性时)触发__get方法,并且把这个属性名当作参数传入到方法中
            echo "调用的属性名为".$name;
        }

        public function __set($name, $value)    //_set(属性名,属性值)  必须含有两个参数
        {   //当对象调用一个非公有属性时,__set方法会把这个属性名当作第一个参数,把值当作第二个参数传进来
            echo "调用的属性名和值为&emsp;".$name."&emsp;";
        }
    }
    $qjy = new test();  //实例化test类

    echo $qjy->name1."<br/>";
    echo $qjy -> name2."<br/>"; //调用非共有属性时,__get方法将返回此属性的属性名
    echo $qjy -> name3."<br/>";
    echo $qjy -> wo."<br/>";
    /* 运行结果:
        1
        调用的属性名为name2
        调用的属性名为name3
        调用的属性名为wo
    */

    echo $qjy->name2 = "qwe<br/>";  //调用非共有属性时,__set方法将返回此属性的属性名和值
    echo $qjy->name3 = "asd<br/>";
    echo $qjy->aaa = "zxc<br/>";
    /* 运行结果:
        调用的属性名和值为 name2 qwe
        调用的属性名和值为 name3 asd
        调用的属性名和值为 aaa zxc
    */

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值