1.PHP 超級全局變量:PHP中預約義了幾個超級全局變量(superglobals) ,這意味着它們在一個腳本的所有做用域中均可用。 你不須要特別說明,就能夠在函數及類中使用。php
1.1 PHP $GLOBALShtml
$GLOBALS 是PHP的一個超級全局變量組,在一個PHP腳本的所有做用域中均可以訪問。web
$GLOBALS 是一個包含了所有變量的全局組合數組。變量的名字就是數組的鍵。數組
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
以上實例中 z 是一個$GLOBALS數組中的超級全局變量,該變量一樣能夠在函數外訪問。服務器
1.2 PHP $_SERVER函數
$_SERVER 是一個包含了諸如頭信息(header)、路徑(path)、以及腳本位置(script locations)等等信息的數組。這個數組中的項目由 Web 服務器建立。不能保證每一個服務器都提供所有項目;服務器可能會忽略一些,或者提供一些沒有在這裏列舉出來的項目。post
<?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; ?>
運行結果:spa
/try/demo_source/demo_global_server.php(當前執行腳本的文件名)
www.runoob.com(當前運行腳本所在的服務器的主機名。若是腳本運行於虛擬主機中,該名稱是由那個虛擬主機所設置的值決定。如: www.runoob.com)
www.runoob.com(當前請求頭中 Host: 項的內容,若是存在的話。)
https://www.runoob.com/try/showphp.php?filename=demo_global_server(引導用戶代理到當前頁的前一頁的地址(若是存在)。由 user agent 設置決定。並非全部的用戶代理都會設置該項,有的還提供了修改 HTTP_REFERER 的功能。簡言之,該值並不可信。))
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
/try/demo_source/demo_global_server.php(含當前腳本的路徑。這在頁面須要指向本身時很是有用。__FILE__ 常量包含當前腳本(例如包含文件)的完整路徑和文件名)代理
1.3 PHP $_REQUEST code
PHP $_REQUEST 用於收集HTML表單提交的數據。
如下實例顯示了一個輸入字段(input)及提交按鈕(submit)的表單(form)。 當用戶經過點擊 "Submit" 按鈕提交表單數據時, 表單數據將發送至<form>標籤中 action 屬性中指定的腳本文件。 在這個實例中,咱們指定文件來處理表單數據。
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>
1.4 PHP $_POST
PHP $_POST 被普遍應用於收集表單數據,在HTML form標籤的指定該屬性:"method="post"。
如下實例顯示了一個輸入字段(input)及提交按鈕(submit)的表單(form)。 當用戶經過點擊 "Submit" 按鈕提交表單數據時, 表單數據將發送至<form>標籤中 action 屬性中指定的腳本文件。 在這個實例中,咱們指定文件來處理表單數據。若是你但願其餘的PHP文件來處理該數據,你能夠修改該指定的腳本文件名。 而後,咱們可使用超級全局變量 $_POST 來收集表單中的 input 字段數據:
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>
1.5 PHP $_GET
PHP $_GET 一樣被普遍應用於收集表單數據,在HTML form標籤的指定該屬性:"method="get"。
$_GET 也能夠收集URL中發送的數據。
假定咱們有一個包含參數的超連接HTML頁面:
<html> <body> <a href="test.php?subject=PHP&web=W3school.com.cn">Test $GET</a> </body> </html>
當用戶點擊連接 "Test $GET", 參數 "subject" 和 "web" 將發送至"test.php",你能夠在 "get.php" 文件中使用 $_GET 變量來獲取這些數據。
如下實例顯示了 "test.php" 文件的代碼:
<html> <body> <?php echo "Study " . $_GET['subject'] . " @ " . $_GET['web']; ?> </body> </html>
2. PHP 魔術常量
2.1 __LINE__ 文件中的當前行號。
<?php echo '這是第 " ' . __LINE__ . ' " 行'; ?>
以上實例輸出結果爲:
這是第 「 2 」 行
2.2 __FILE__ 文件的完整路徑和文件名。若是用在被包含文件中,則返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 老是包含一個絕對路徑。
<?php echo '該文件位於 " ' . __FILE__ . ' " '; ?>
以上實例輸出結果爲:
該文件位於 「 E:\wamp\www\test\index.php 」
2.3 __DIR__
文件所在的目錄。若是用在被包括文件中,則返回被包括的文件所在的目錄。
它等價於 dirname(__FILE__)。除非是根目錄,不然目錄中名不包括末尾的斜槓。
<?php echo '該文件位於 " ' . __DIR__ . ' " '; ?>
以上實例輸出結果爲:
該文件位於 「 E:\wamp\www\test 」
2.4 __FUNCTION__ 函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值老是小寫字母的。
<?php function test() { echo '函數名爲:' . __FUNCTION__ ; } test(); ?>
以上實例輸出結果爲:
函數名爲:test
2.5 __CLASS__
類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。
在 PHP 4 中該值老是小寫字母的。類名包括其被聲明的做用區域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 對 trait 也起做用。當用在 trait 方法中時,__CLASS__ 是調用 trait 方法的類的名字。
<?php class test { function _print() { echo '類名爲:' . __CLASS__ . "<br>"; echo '函數名爲:' . __FUNCTION__ ; } } $t = new test(); $t->_print(); ?>
以上實例輸出結果爲:
類名爲:test 函數名爲:_print