码迷,mamicode.com
首页 > Web开发 > 详细

PHP - 魔术方法

时间:2015-12-25 19:21:36      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

<?php
    class Person
    {
        private $name = null;
        private $sex  = null;
        private $age  = null;
        
        /**
         * 构造函数
         */
        public function __construct($name)
        {
            $this->name = $name;
        }
        
              
        /**
         * 析构函数
         */
        public function __destruct()
        {
           echo ‘使用析构方法,销毁了对象!‘;
        }
        
        /**
         * 在对象中使用不存在的函数时候调用,
         * @param unknown $paramname   使用的函数名称
         * @param unknown $paramarg    使用函数中的参数,数组形式
         */
        public function __call($paramname,$paramarg)
        {
            if ($paramname == ‘abc‘) {
                echo ‘参数名是abc‘.‘参数是:‘.$paramarg;
            } else {
                echo ‘参数名不是abc,是‘.$paramname.‘参数是:‘.$paramarg[0];
            }
        }
        
        /**
         * 当对不可访问属性或不存在的属性进行赋值时
         * @param unknown $paramname    属性名称
         * @param unknown $paramarg     属性值
         */
        public function __set($paramname,$paramarg)
        {
            echo ‘不可访问的参数是:‘.$paramname.‘,值是:‘.$paramarg.‘<br/>‘;
        }
        
        /**
         * 当对不可访问属性或不存在的属性取值时候调用
         * @param unknown $paramname  要取值得属性名称
         */
        public function __get($paramname)
        {
            if ($paramname == ‘name‘) {
                echo ‘你访问的是name属性,我要加上123‘.$this->name.‘123‘;
            }
        }
        
        
        /**
         * 魔术方法,直接输出对象时调用,使用return返回值。
         */
        public function __toString()
        {
            return ‘您直接输出了对象,如果没有__tostring()方法,会报错!‘;
        }
        
        
        
        /**
         * 当对不可访问属性或不存在的属性调用 isset() 或 empty() 时,__isset() 会被调用。 
         */
        public function __isset($paramname)
        {
            echo ‘属性是:‘.$paramname.‘您对不可访问或不存在的属性使用了isset()或empty()方法!‘;
        }
    }
?>

 

PHP - 魔术方法

标签:

原文地址:http://www.cnblogs.com/KTblog/p/5076572.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!