Home > Backend Development > PHP Tutorial > PHP魔术方法__GET、__SET使用实例_php技巧

PHP魔术方法__GET、__SET使用实例_php技巧

WBOY
Release: 2016-05-16 20:30:21
Original
1033 people have browsed it

__get()  - 读取不可访问属性的值时,__get() 会被调用。

__set()  - 在给不可访问属性赋值时,__set() 会被调用。

复制代码 代码如下:

/**
 * 清晰的认识__get() __set()
 */
class Example {
   
    //公有的属性
    public $public = 'pub' ;
    //受保护的 - 子类中该属性可用
    protected $protected = 'pro';
    //私有的 - 只能此类使用此属性
    private $private = 'pri';
   
    //当访问对象中的属性不存在或者非公有属性的时候自动加载__get()方法
    public function __get($name){
        return '调用__get()方法:'.$name;
    }
   
    //当给对象的一个属性赋值的时候如果该属性不存在或者是非公有属性则自动加载__set()方法
    public function __set($name,$value){
        echo "\nname:".$name.',value:'.$value."\n";
    }
}

$example = new Example;
echo '

';<br>
echo $example->public."\n";<br>
echo $example->protected."\n";<br>
echo $example->private."\n";<br>
echo $example->other."\n";<br>
echo '<hr>';<br>
$example->public = 'lic';   //这个赋值成功所有没有显示<br>
$example->protected = 'tec';<br>
$example->private = 'vat';<br>
$example->other = 'er';<br>
echo '<br>';<br>
echo '打印 public 属性:'.$example->public;<br>
Copy after login

结果如下:

复制代码 代码如下:

pub
调用__get()方法:protected
调用__get()方法:private
调用__get()方法:other

name:protected,value:tec

name:private,value:vat

name:other,value:er

打印 public 属性:lic

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template