> 백엔드 개발 > PHP 튜토리얼 > PHP魔术方法__GET、__SET使用实例_PHP

PHP魔术方法__GET、__SET使用实例_PHP

WBOY
풀어 주다: 2016-05-31 19:27:10
원래의
787명이 탐색했습니다.

__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>

<p>结果如下:</p>
<p></p><p class="codetitle"> 代码如下:</p><p class="codebody" id="code62917"><br>
pub<br>
调用__get()方法:protected<br>
调用__get()方法:private<br>
调用__get()方法:other</p>
<p>name:protected,value:tec</p>
<p>name:private,value:vat</p>
<p>name:other,value:er</p>
<p>打印 public 属性:lic<br>
</p>
    
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿