首頁  >  文章  >  後端開發  >  php中關於變數定義的總結

php中關於變數定義的總結

黄舟
黄舟原創
2017-10-18 09:02:051103瀏覽

這篇文章主要介紹了php中各種定義變數的方法小結,需要的朋友可以參考下

#1.定義常數define("CONSTANT", "Hello world .");

常數只能包含標量資料(boolean,integer,float 和string)。

呼叫常數時,只需要簡單的用名稱取得常數的值,而不能加「$」符號,如:echo CONSTANT;

註: 常數和(全域)變數在不同的名字空間中。這意味著例如 TRUE 和 $TRUE 是不同的。

2.普通變數$a = "hello";

#3.可變變數(使用兩個美元符號($))

$$a = "world";

兩個變數都定義了:

$a 的內容是「hello」且$hello 的內容是「world」。

因此,可以表述為:

echo "$a ${$a}";或echo "$a $hello";它們都會輸出:hello world

要將可變變數用於數組,必須解決一個模稜兩可的問題。這就是當寫下$$a[1] 時,解析器需要知道是想要$a[1] 作為一個變數呢,還是想要$$a 作為一個變數並取出該變數中索引為[1] 的值。解決此問題的語法是,對第一種情況用 ${$a[1]},對第二種情況用 ${$a}[1]。

4.靜態變數

在函數內部static $a = 0;

注意:宣告中以表達式的結果對其賦值會導致解析錯誤如static $a =3+3;(error)

靜態變數僅在局部函數域中存在(函數內部),函數執行完之後,變數值不會遺失,可用於遞歸呼叫

5.全域變數

在函數體內定義的global變數,函數體外可以使用,在函數體外定義的global變數不能在函數體內使用,在全域範圍內存取變數可以用特殊的PHP 自訂$GLOBALS 陣列:

如:$GLOBALS["b" ] = $GLOBALS["a"] + $GLOBALS["b"];

在一個函數域內用global 語句導入的一個真正的全域變數實際上是建立了一個到全域變量的引用

global $obj;

註:對於變數的static 和global 定義是以應用的方式實現的

6.給變數賦值:傳送位址賦值(簡單引用):

$bar = &$foo; //加&符號到將要賦值的變數前

改動新的變數將影響到原始變量,這種賦值操作更加快速

注意:只有命名變數才可以傳遞位址賦值

注意:如果

$bar = &$a; <br>$bar = &$foo;

改變$bar的值只能改變變數foo的值,而不改變a的值(引用改變了)

7.PHP 超全域變數$GLOBALS :

包含一個引用指向每個目前腳本的全域範圍內有效的變量。此數組的鍵標為全域變數的 名稱。從 PHP 3 開始存在 $GLOBALS 陣列。

$_SERVER : 變數由 Web 伺服器設定或直接與目前腳本的執行環境相關聯。類似於舊數組 $HTTP_SERVER_VARS 數組(仍然有效,但反對使用)。

$_GET : 由 HTTP GET 方法提交至腳本的變數。

$_POST : 經由 HTTP POST 方法提交至腳本的變數。

$_COOKIE : 由 HTTP Cookies 方法提交至腳本的變數。

$_FILES : 由 HTTP POST 檔案上傳而提交至腳本的變數。

檔案上傳表單中要有 enctype="multipart/form-data"

$_ENV : 執行環境提交至腳本的變數。

$_REQUEST :經由 GET,POST 和 COOKIE 機制提交至腳本的變量,因此該數組並不值得信任。所有包含在該數組中的變

量的存在與否以及變數的順序均按照 php.ini 中的 variables_order 配置指示來定義。該數組沒有直接模擬 PHP 4.1.0 的早期版本。參見 import_request_variables()。

注意: 自 PHP 4.3.0 起,$_FILES 中的檔案資訊不再存在於 $_REQUEST 中。

$_SESSION :目前註冊給腳本會話的變數。

如何停用phpinfo():

php.ini中

#disable_functions = phpinfo()

重啟web伺服器.

php中的常數

常數只能用define(常數名稱,常數值);

常數只能包含標量資料(boolean,integer,float 和string) 。

可以簡單的透過指定其名字來取得常數的值,不要在常數前面加上 $ 符號。如果常數名稱是動態的,也可以用函數

constant() 來讀取常數的值。用 get_defined_constants() 可以取得所有已定義的常數列表。

註: 常數和(全域)變數在不同的名字空間。這意味著例如 TRUE 和 $TRUE 是不同的。

如果使用了一個未定義的常數,PHP 假定想要的是該常數本身的名字,如同用字串呼叫它一樣(CONSTANT 對應 "CONSTANT")。此時將發出一個 E_NOTICE 等級的錯誤。請參閱手冊中為什麼 $w3sky[bar] 是錯誤的(除非事先用 define() 將 bar 定義為一個常數)。如果只想檢查是否定義了某一常數,用 defined() 函數。
常數和變數不同:

* 常數前面沒有美元符號($);

* 常數只能用define() 函數定義,而不能透過賦值語句;

* 常數可以不用理會變數範圍的規則而在任何地方定義和存取;

* 常數一旦定義就不能被重新定義或取消定義;

* 常數的值只能是標量。

定義常數


<?PHP 
define("CONSTANT", "Hello world."); 
echo CONSTANT; // outputs "Hello world." 
echo Constant; // outputs "Constant" and issues a notice. 
?>

#總結

#

以上是php中關於變數定義的總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn