常見的幾種魔術變數

2022-09-13 17:00:15 字數 1350 閱讀 6689

如果在類中變數,方法被設定許可權,外部想要設定,訪問可以使用參考以下:

__set和__get

class

tets

public

function __get($var)}

$test = new

test();

$test->a = 'abc'; //

如果沒有設定__set會報錯,因為外部不能呼叫private的變數

var_dump($this->a);

__isset

class

test

}$test= new

test();

var_dump(isset($test->abc));

__unset

class

test

}$test = new

test();

unset($test->abc);

__call

class

test

}$test = new

test();

$test->go(1,'ok'); //當例項化物件沒有找到方法,就會自動呼叫__call();

__callstatic

class

test

}test::go(1,'ok'); //沒有找到類方法就自動呼叫__callstatic()

__invoke

class

test

}$test = new

test();

$test('go....'); //

直接將例項化的物件當做函式來執行就用__invoke()

__tostring

class

test

}$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...