程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP魔術方法__GET、__SET使用實例,__get__set

PHP魔術方法__GET、__SET使用實例,__get__set

編輯:關於PHP編程

PHP魔術方法__GET、__SET使用實例,__get__set


__get()  - 讀取不可訪問屬性的值時,__get() 會被調用。

__set()  - 在給不可訪問屬性賦值時,__set() 會被調用。

復制代碼 代碼如下:
<?php

/**
 * 清晰的認識__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 '<pre>';
echo $example->public."\n";
echo $example->protected."\n";
echo $example->private."\n";
echo $example->other."\n";
echo '<hr>';
$example->public = 'lic';   //這個賦值成功所有沒有顯示
$example->protected = 'tec';
$example->private = 'vat';
$example->other = 'er';
echo '<br/>';
echo '打印 public 屬性:'.$example->public;

結果如下:

復制代碼 代碼如下:
pub
調用__get()方法:protected
調用__get()方法:private
調用__get()方法:other

name:protected,value:tec

name:private,value:vat

name:other,value:er

打印 public 屬性:lic

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved