以前很少這麼詳細的給大家介紹php中的變量、常量以及魔術常量的用法以及參考表,這文章對於初學者有不小的幫助有需要了解的朋友可以參考一下。
變量:
變量用於存儲值,比如數字、文本字符串或數組。
一旦設置了某個變量,我們就可以在腳本中重復地使用它。
PHP 中的所有變量都是以 $ 符號開始的。
在 PHP 中設置變量的正確方法是:
代碼如下 復制代碼 $var_name = value;PHP 的入門者往往會忘記在變量的前面的 $ 符號。如果那樣做的話,變量將是無效的。
讓我們試著創建一個存有字符串的變量,和一個存有數值的變量:
代碼如下 復制代碼 <?php
1.如何定義變量,它和C# 等語言有什麼不同呢?
PHP 中的變量用一個美元符號後面跟變量名來表示。變量名是區分大小寫的。例如:
?>你可能還關心變量的命名,其實和大多數語言一樣。
2. 變量區分大小寫嗎?
如 1裡說的,區分大小寫。
注意,需要說明的一點是自PHP4以來,引入了引用賦值的概念,其實和多數語言的引用類似,不過我覺得最類似的是C/C++.因為它也用到了"&"符號。例如:
和其他語言一樣,只能對有變量名的變量才可以引用。
好了現在大家對變量應該有一個大概的了解了,現在我們看看變量的間接引用和字符串連接。
①變量的間接引用: 先看個例子吧
代碼如下 復制代碼 <?
上面的輸出結果是123
我們可以看到在第二行代碼中多了一個$,並通過指定的名稱訪問變量,指定的名字存儲在$a("b")中,並把這個變量$b的值更改為123。因此,這樣的$b的變量被創建和賦值。
通過在變量的前面增加附加的$標記,你可以任意增加引用的次數。
②字符串連接: 先看個例子吧
代碼如下 復制代碼 <?
需要注意的是 在PHP 4.2.0 以及後續版本中,PHP 指令 register_globals 的默認值為 off。這是 PHP 的一個主要變化。讓 register_globals 的值為 off 將影響到預定義變量集在全局范圍內的有效性。例如,為了得到 DOCUMENT_ROOT 的值,將必須使用 $_SERVER['DOCUMENT_ROOT'] 代替 $DOCUMENT_ROOT,又如,使用 $_GET['id'] 來代替 $id 從 URL http://www.example.com/test.php?id=3 中獲取 id 值,亦或使用 $_ENV['HOME'] 來代替 $HOME 獲取環境變量 HOME 的值
我們看到代碼的第三行,英文的(句)號,它可以將字符串連接起來,變成合並的新字符串。
超全局變量 描述 $GLOBALS 包含一個引用指向每個當前腳本的全局范圍內有效的變量。該數組的鍵名為全局變量的名稱。從 PHP 3 開始存在 $GLOBALS 數組。 $_SERVER 變量由 web 服務器設定或者直接與當前腳本的執行環境相關聯。類似於舊數組 $HTTP_SERVER_VARS 數組(依然有效,但反對使用)。 $_GET 經由 URL 請求提交至腳本的變量。類似於舊數組 $HTTP_GET_VARS 數組(依然有效,但反對使用)。 $_POST 經由 HTTP POST 方法提交至腳本的變量。類似於舊數組 $HTTP_POST_VARS 數組(依然有效,但反對使用)。 $_COOKIE 經由 HTTP Cookies 方法提交至腳本的變量。類似於舊數組 $HTTP_COOKIE_VARS 數組(依然有效,但反對使用)。 $_FILES 經由 HTTP POST 文件上傳而提交至腳本的變量。類似於舊數組 $HTTP_POST_FILES 數組(依然有效,但反對使用) $_ENV 執行環境提交至腳本的變量。類似於舊數組 $HTTP_ENV_VARS 數組(依然有效,但反對使用)。 $_REQUEST 經由 GET,POST 和 COOKIE 機制提交至腳本的變量,因此該數組並不值得信任。所有包含在該數組中的變量的存在與否以及變量的順序均按照 php.ini 中的 variables_order 配置指示來定義。此數組在 PHP 4.1.0 之前沒有直接對應的版本。參見 import_request_variables()。 $_SESSION 當前注冊給腳本會話的變量。類似於舊數組 $HTTP_SESSION_VARS 數組(依然有效,但反對使用)
常量:
常量是一個簡單值的標識符(名字)。如同其名稱所暗示的,在腳本執行期間該值不能改變(除了所謂的魔術常量,它們其實不是常量)。常量默認為大小寫敏感。通常常量標識符總是大寫的。
常量名和其它任何 PHP 標簽遵循同樣的命名規則。合法的常量名以字母或下劃線開始,後面跟著任何字母,數字或下劃線。用正則表達式是這樣表達的:[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*
①是在程序執行期間無法改變的數據,常量的作用域是全局的。
②常量的命名與與變量相似,只是不帶美元符號“$”。一個有效的常量名由字母或者下劃線開頭,後面跟報上任意數量的字母、數字或者下劃線。
③一般在PHP中常量都為大寫字母而且又分為系統常量和自定義常量。
系統常量我們就大概說了 ,這個在後面的知識會介紹到。
1、__FILE__ 默認常量,是指PHP程序文件名及路徑;
2、__LINE__ 默認常量,是指PHP程序的行數;
3、__CLASS__ 類的名稱;
自定義常量:通過define()函數來定義一個常量的,
其語法格式為:bool define ( string $name, mixed $value [, bool case_$insensitive] )
name:指定常量的名稱。
value:指定常量的值。
insensitive:指定常量名稱是否區分大小寫。如果設置為true則不區分大小寫;如果設置為false則區分大小寫。如果沒有設置該參數,則取默認值false。
<?php
// 合法的常量名
define("FOO", "something");
define("FOO2", "something else");
define("FOO_BAR", "something more");
// 非法的常量名
define("2FOO", "something");
// 下面的定義是合法的,但應該避免這樣做:(自定義常量不要以__開頭)
// 也許將來有一天PHP會定義一個__FOO__的魔術常量
// 這樣就會與你的代碼相沖突
define("__FOO__", "something");
?>