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; 
$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. 
?>
發佈了7 篇原創文章 · 獲贊 7 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章