一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP 預定義變量、魔術常量和魔術方法功能與用法小結

PHP 預定義變量、魔術常量和魔術方法功能與用法小結

2021-10-08 15:06Ryan_zheng PHP教程

這篇文章主要介紹了PHP 預定義變量、魔術常量和魔術方法,總結分析了PHP 預定義變量、魔術常量和魔術方法基本概念、原理、功能、用法及操作注意事項,需要的朋友可以參考下

本文總結了PHP 預定義變量、魔術常量和魔術方法。分享給大家供大家參考,具體如下:

PHP 預定義了一些變量、常量、方法,使用起來很方便,例如直接使用 __DIR__ 獲取當前文件所在的目錄。

下面分別詳細介紹一下 PHP 的預定義變量、魔術常量和魔術方法

預定義變量

超全局變量:

超全局變量是在全部作用域中始終可用的內置變量,意味這你可以在 PHP 腳本的任意位置直接訪問。在函數或方法中無需執行 global $variable; 就可以訪問它們。

超全局變量是從 PHP 4.1.0 開始才有的功能。

PHP 的超級全局變量有:

$GLOBALS,引用全局作用域中可用的全部變量

$_SERVER,服務器和執行環境信息

$_GET,HTTP GET 變量

$_POST,HTTP POST 變量

$_FILES,HTTP 文件上傳變量

$_COOKIE,HTTP Cookies

$_SESSION,Session 變量

$_REQUEST,HTTP Request 變量

$_ENV,環境變量

其他:

$php_errormsg,前一個錯誤信息

$HTTP_RAW_POST_DATA,原生 POST 數據,一般會使用 php://input 代替 $HTTP_RAW_POST_DATA

$http_response_header,HTTP 響應頭

$argc,傳遞給腳本的參數數目

$argv,傳遞給腳本的參數數組

魔術常量

PHP 有八個魔術常量,它們的值隨著它們在代碼中的位置改變而改變。例如 __LINE__ 的值就依賴于它在腳本中所處的行來決定。這些特殊的常量(魔術常量)不區分大小寫,如下:

__LINE__,文件中的當前行號

__FILE__,文件的完整路徑和文件名,如果用在被包含的文件中,則返回被包含的文件名

__DIR__,文件所在的目錄,如果用在被包括文件中,則返回被包括的文件所在的目錄。等價與 dirname(__FILE__)

__FUNCTION__,函數的名稱

__CLASS__,類的名稱

__TRAIT__,trait 的名字

__METHOD__,類的方法名

__NAMESPACE__,當前命名空間的名稱

魔術方法

Magic methods PHP 的魔術方法,在命名自定義的類方法時不能使用這些方法名,因為 PHP 已經規定好了這些方法是有特定的功能,例如 __construct() 是構造方法。

PHP 將所有以 __(兩個下劃線)開頭的類方法保留為魔術方法。所以在定義類方法時,除了魔術方法,建議不要以 __ 為前綴。

__construct(),構造函數

__destruct(),析構函數

__call(),在對象中調用一個不可訪問的方法時,__call() 會被調用

__callStatic(),在對象中調用一個不可訪問的靜態方法時,__call() 會被調用

__get(),當讀取不可訪問的屬性值時,__set() 會被調用

__set(),當給不可訪問的屬性賦值時,__set() 會被調用

__isset(),當對不可訪問屬性調用 isset() 或 empty() 是,__isset() 會被調用

__unset(),當對不可訪問屬性調用 unset() 時,__unset() 會被調用

__sleep(),serialize() 函數會檢查類中是否存在魔術方法 __sleep(),如果存在,會先調用 __sleep(),然后才執行序列化操作。這樣就允許對象在被序列化之前做任何清除操作。

__wakeup(),當使用 unserialize() 恢復對象時, 將調用 __wakeup() 成員函數。

__toString(),當一個對象被當作字符串輸出時,會調用 __toString() 輸出的內容,例如 echo $obj;

__invoke(),當以調用函數的方式調用一個對象時,__invoke() 方法會被自動調用,本特性只在 PHP 5.3.0 及以上版本有效。

__set_state(),當調用 var_export() 導出對象時,此方法會被調用

__clone(),對象復制,當使用 clone 關鍵字復制對象時,會調用 __clone(),__clone() 不能被直接調用,使用 clone 復制的對象為淺復制,所以引用屬性仍然會是一個指向原來的變量的引用。

__debugInfo(),當調用 var_dump() 導出對象時,此方法會被調用

__autoload($class_name),加載未定義的類 

官方文檔:

https://www.php.net/manual/zh/reserved.variables.php

https://www.php.net/manual/zh/language.constants.predefined.php

https://www.php.net/manual/zh/language.oop5.magic.php

希望本文所述對大家PHP程序設計有所幫助。

原文鏈接:https://www.cnblogs.com/ryanzheng/p/12568631.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99精品全国免费7观看视频 | 四虎精品免费国产成人 | 99在线精品免费视频九九视 | 2022最新a精品视频在线观看 | 亚洲乱码一二三四五六区 | 猫扑俩性 | 污到湿的爽文免费阅读 | 国产剧情麻豆刘玥视频 | 热久久天天拍天天拍热久久2018 | 女同色图 | 欧美xxxxx69| 小兰被扒开内裤露出p | 日本免费一区二区三区a区 日本免费三片在线观看 | 热九九精品 | 四虎永久在线精品国产 | 国产真实伦对白在线播放 | 国产精品亚洲一区二区 | 恩爱夫妇交换小说 | 国产裸舞福利资源在线视频 | 美女禁区视频免费观看精选 | 操妈小说| 国产激情影院 | 好妈妈7在线观看高清 | 毛片免费毛片一级jjj毛片 | 国产第一页在线视频 | 精品免费久久久久久成人影院 | 四虎网址在线 | 午夜尤物 | 99re最新网址 | 国产精品久久久久影视不卡 | 免费视频完整版在线观看网站 | 花唇肿胀无法合拢双性 | 人禽l交视频在线播放 视频 | 亚洲乱码一二三四五六区 | 亚洲品质自拍网站 | 午夜特级毛片 | 国产在线视频一区二区三区 | 5g影院天天| 国产成人无精品久久久久国语 | 韩国禁片在线观看久 | 精品一久久香蕉国产线看观 |