如果在類中變數,方法被設定許可權,外部想要設定,訪問可以使用參考以下:
__set和__get
classtets
public
function __get($var)}
$test = new
test();
$test->a = 'abc'; //
如果沒有設定__set會報錯,因為外部不能呼叫private的變數
var_dump($this->a);
__isset
classtest
}$test= new
test();
var_dump(isset($test->abc));
__unset
classtest
}$test = new
test();
unset($test->abc);
__call
classtest
}$test = new
test();
$test->go(1,'ok'); //當例項化物件沒有找到方法,就會自動呼叫__call();
__callstatic
classtest
}test::go(1,'ok'); //沒有找到類方法就自動呼叫__callstatic()
__invoke
classtest
}$test = new
test();
$test('go....'); //
直接將例項化的物件當做函式來執行就用__invoke()
__tostring
classtest
}$test = new
test();
echo
$test; //
直接列印例項化物件,就可以使用__tostring
其他常見魔術變數
__clone() 當物件被轉殖時,被呼叫
__construct() 當例項化乙個物件的時候,這個物件的這個方法首先被呼叫。
__destruct() 當刪除乙個物件或物件操作終止的時候,呼叫該方法。
系統常量
__file__ 當前檔名
__line__ 當前行數
__function__ 當前函式名
__class__ 當前類名
__method__ 當前物件的方法名
PHP幾種常見魔術方法與魔術變數解析
php幾種常見魔術方法與魔術變數解析 先不多說,直接上 如下 1 class demo210 11 call 用來獲取沒有定義的function 12public function call name,arguments 13 1617 獲取私有變數 18public function get na...
php魔術變數的概念 PHP 魔術變數
php 魔術變數 php 向它執行的任何指令碼提供了大量的預定義常量。不過很多常量都是由不同的擴充套件庫定義的,只有在載入了這些擴充套件庫時才會出現,或者動態載入後,或者在編譯時已經包括進去了。有八個魔術常量它們的值隨著它們在 中的位置改變而改變。例如 line 的值就依賴於它在指令碼中所處的行來決...
php的魔術變數
魔術常量它們的值隨著它們在 中的位置改變而改變,這些特殊的常量不區分大小寫。line 檔案中的當前行號 file 檔案的完整路徑和檔名 dir 檔案所在的目錄。如果用在被包括檔案中,則返回被包括的檔案所在的目錄。等價於dirname file 除非是根目錄,否則目錄中名不包括末尾的斜槓。functi...