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