一、魔術函式
1、__construct()
例項化物件時被呼叫, 當__construct和以類名為函式名的函式同時存在時,__construct將被呼叫,另乙個以類名為函式名的函式不被呼叫。
2、__destruct()
當刪除乙個物件或物件操作終止時被呼叫。 (預設)
3、__call()
物件呼叫某個方法, 若方法存在,則直接呼叫;若方法不存在,則會去呼叫__call函式。 (呼叫方法操作)
class
test
方法不存在。你傳入的引數是:".
print_r
($args
,true
); }
} $t
=new
test();
$t->
getname(aning
, go);
程式將會輸出:
您要呼叫的 getname 方法不存在。引數是:array
([0] => aning
[1] => go
)4、__get()
讀取乙個物件的屬性時,若屬性存在,則直接返回屬性值; 若屬性不存在,則會呼叫__get函式。(讀取屬性操作)
class
test }
$t=newtest();
echo
$t->
name;
就會輸出:name 不存在
5、__set()
設定乙個物件的屬性時, 若屬性存在,則直接賦值;
若不存在,則會呼叫__set函式。(設定屬性操作)
class
test }
$t=newtest();
$t->
name ="
aninggo";
就會輸出:對 name 附值 aninggo
6、__tostring()
列印乙個物件的時被呼叫。如echo $obj;或print $obj;
class
test }
$t=newtest();
echo$t;
7、__clone()
轉殖物件時被呼叫。如:$t=new test();$t1=clone $t;
class
test }$t
=new
test();
$t1=
clone$t;
程式輸出:我被複製了!
8、__sleep()
serialize之前被呼叫。若物件比較大,想刪減一些東西
再序列化,可考慮一下此函式。
9、__wakeup()
unserialize時被呼叫,做些物件的初始化工作。
10、__isset()
檢測乙個物件的屬性是否存在時被呼叫。如:isset($c->name)。
11、__unset()
unset乙個物件的屬性時被呼叫。如:unset($c->name)。
12、__set_state()
呼叫var_export時,被呼叫。用__set_state的返回值做為var_export的返回值。
13、__autoload()
例項化乙個物件時,如果對應的類不存在,則該方法被呼叫。
二、魔術常量
1、__line__
返回檔案中的當前行號。
2、__file__
返回檔案的完整路徑和檔名。如果用在包含檔案中,則返回包含檔名。自 php 4.0.2 起,__file__ 總是包含乙個絕對路徑,而在此之前的版本有時會包含乙個相對路徑。
3、__dir__
檔案所在的目錄。如果用在被包括檔案中,則返回被包括的檔案所在的目錄。它等價於 dirname(__file__)。除非是根目錄,否則目錄中名不包括末尾的斜槓。(php 5.3.0中新增)
4、__function__
返回函式名稱(php 4.3.0 新加)。自 php 5 起本常量返回該函式被定義時的名字(區分大小寫)。在 php 4 中該值總是小寫字母的。
5、__class__
返回類的名稱(php 4.3.0 新加)。自 php 5 起本常量返回該類被定義時的名字(區分大小寫)。在 php 4 中該值總是小寫字母的。
6、__trait__
trait 的名字(php 5.4.0 新加)。自 php 5.4 起此常量返回 trait 被定義時的名字(區分大小寫)。trait 名包括其被宣告的作用區域(例如 foo\bar)。
7、__method__
返回類的方法名(php 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。 格式:類名::方法名
8、__namespace__
當前命名空間的名稱(區分大小寫)。此常量是在編譯時定義的(php 5.3.0 新增)
三、預定義常量
php_version php 程式的版本,如4.0.2
php_os 執行php直譯器的作業系統名稱,如windows
php_sapi 用來判斷是使用命令列還是瀏覽器執行的,如果 php_sapi=='cli' 表示是在命令列下執行
e_error 最近的錯誤處
e_warning 最近的警告處
e_parse 剖析語法有潛在問題處
e_notice 發生不尋常但不一定是錯誤處
php_eol 系統換行符,windows是(\r\n),linux是(/n),mac是(\r),自 php 4.3.10 和 php 5.0.2 起可用
directory_separator 系統目錄分隔符,windows是反斜線(\),linux是斜線(/)
path_separator 多路徑間分隔符,windows是反斜線(;),linux是斜線(:)
php_int_max int最大值,32位平台時值為2147483647,自 php 4.4.0 和 php 5.0.5 起可用
php_int_size int字長,32位平台時值為4(4位元組),自 php 4.4.0 和 php 5.0.5 起可用
四、php執行環境檢測函式php_sapi_name()
該函式返回乙個描述php與web伺服器介面的小寫字串。
返回描述 php 所使用的介面型別(the server api, sapi)的小寫字串。
例如,cli 的 php 下這個字串會是 "cli",apache 下可能會有幾個不同的值,取決於具體使用的 sapi。
以下列出了可能的值:
aolserver、apache、 apache2filter、apache2handler、 caudium、cgi (直到 php 5.3), cgi-fcgi、cli、 continuity、embed、 isapi、litespeed、 milter、nsapi、 phttpd、pi3web、roxen、 thttpd、tux 和 webjames。
sapi: 伺服器端api,貌似和cgi是乙個東西。每個伺服器提供的api可能不同,但是他們都提供了cgi。
所以可以理解cgi是每個伺服器都應該有的sapi。apache有自己的sapi,iis也有自己的。但是php能在這些不同的伺服器端工作,因為php支援了它們各自的sapi。
php-cli: php命令列介面,php可以工作在這種模式下也可以cgi模式。是sapi的一種,它和cgi提供的功能差不多。
PHP中的預定義常量 預定義變數 魔術常量
php中的預定義常量 預定義變數 魔術常量 1 預定義常量 核心預定義常量 是在php的核心中就定義好了的常量。區分大小寫。php version 內建常量,php程式的版本,如3.0.8 dev php os 內建常量,執行php解析器的作業系統名稱,如windows。php eol 系統換行符,...
PHP魔術常量 魔術函式
1 魔術常量 2 line 檔案中的當前行號 包含注釋行 3 file 檔案的完整路徑和檔名 4 function 當前所在的函式名稱 php 4.3.0 新增 5 class 當前所在的類的名稱 php 4.3.0 新增 6 method 當前所在的類的方法名 php 5.0.0 新增 7 核心預...
PHP中的魔術常量 預定義常量和預定義變數
1.魔術常量 php中有八個魔術常量,它們的值會隨著它們在 中的位置的改變而改變。這些特殊的常量不區分大小寫。2.預定義常量 核心預定義常量 是在php的核心中就定義好了的常量。區分大小寫。php version 返回php的版本。php os 返回 執行php直譯器的作業系統名稱。php eol ...