程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP 特殊方法 __set()、__get()

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

編輯:關於PHP編程

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
    */
?>

 

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