首页 > php教程 > php手册 > 正文

PHP 特殊方法 __set()、__get()

WBOY
发布: 2016-06-13 08:50:40
原创
891 人浏览过

PHP 特殊方法 __set()、__get()

 <?php
    header("Content-type: text/html; charset=utf-8"); 
    class person{
        //成员属性
        private $name;
        private $age = 20;
        //成员方法
        function username($name){
            return $this->name=$name;
        }
        //__set()方法用来设置私有属性
        function __set($property_name, $value) { 
        echo "在直接设置私有属性值的时候,自动调用了这个 __set() 方法为私有属性赋值<br />";
        $this->$property_name = $value; 
        }
 
        //__get()方法用来获取私有属性
        function __get($property_name) {  
        echo "在直接获取私有属性值的时候,自动调用了这个 __get() 方法<br />";
        }
    }
    $obj= new person();
    echo $obj->username("张三");
    echo "<hr/>";
    $obj->name = "李四";//在直接设置私有属性值的时候,自动调用了这个 __set() 方法为私有属性赋值
    echo "<hr/>";
    echo $obj->age;//在直接获取私有属性值的时候,自动调用了这个 __get() 方法,不设置get特殊方法就会报下面的错
    //echo $obj->age;//当成员属性或者方法前有private修饰,不能在类外访问。否则报错如下
    /*
     Fatal error: Cannot access private property person::$age in D:\wamp\www\ajax\index.php on line 23
    */
?>
登录后复制

 

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!