- 論壇徽章:
- 0
|
php 常量、變量用法詳細(xì)介紹
變量:
變量用于存儲(chǔ)值,比如數(shù)字、文本字符串或數(shù)組。
一旦設(shè)置了某個(gè)變量,我們就可以在腳本中重復(fù)地使用它。
PHP 中的所有變量都是以 $ 符號(hào)開(kāi)始的。
在 PHP 中設(shè)置變量的正確方法是:
$var_name = value;
PHP 的入門者往往會(huì)忘記在變量的前面的 $ 符號(hào)。如果那樣做的話,變量將是無(wú)效的。
讓我們?cè)囍鴦?chuàng)建一個(gè)存有字符串的變量,和一個(gè)存有數(shù)值的變量:
- <?php
- $txt = "Hello World!";
- $number = 16;
- ?>
復(fù)制代碼 1.如何定義變量,它和C# 等語(yǔ)言有什么不同呢?
PHP 中的變量用一個(gè)美元符號(hào)后面跟變量名來(lái)表示。變量名是區(qū)分大小寫的。例如:- <?php
- $var='Jim';
- $VAR='Kimi;
- echo "$var,$VAR";//輸出“Jim,Kimi"
-
- ?>
復(fù)制代碼 你可能還關(guān)心變量的命名,其實(shí)和大多數(shù)語(yǔ)言一樣。
2. 變量區(qū)分大小寫嗎?
如 1里說(shuō)的,區(qū)分大小寫。
注意,需要說(shuō)明的一點(diǎn)是自PHP4以來(lái),引入了引用賦值的概念,其實(shí)和多數(shù)語(yǔ)言的引用類似,不過(guò)我覺(jué)得最類似的是C/C++.因?yàn)樗灿玫搅?quot;&"符號(hào)。例如:- <?php
- $foo = 'Bob'; // 賦值'Bob'給foo
- $bar = &$foo; // 通過(guò)$bar引用.注意&符號(hào)
- $bar = "My name is $bar"; // 修改 $bar
- echo $bar;
- echo $foo; // $foo 也修改了.
- ?>
復(fù)制代碼 和其他語(yǔ)言一樣,只能對(duì)有變量名的變量才可以引用。
好了現(xiàn)在大家對(duì)變量應(yīng)該有一個(gè)大概的了解了,現(xiàn)在我們看看變量的間接引用和字符串連接。
①變量的間接引用: 先看個(gè)例子吧- <?
- $a = "b";
- $a = "123";
- echo $b;
- ?>
-
復(fù)制代碼 上面的輸出結(jié)果是123
我們可以看到在第二行代碼中多了一個(gè)$,并通過(guò)指定的名稱訪問(wèn)變量,指定的名字存儲(chǔ)在$a("b")中,并把這個(gè)變量$b的值更改為123。因此,這樣的$b的變量被創(chuàng)建和賦值。
通過(guò)在變量的前面增加附加的$標(biāo)記,你可以任意增加引用的次數(shù)。
②字符串連接: 先看個(gè)例子吧- <?
- $a = "PHP 4" ;
- $b = "功能強(qiáng)大" ;
- echo $a.$b;
- ?>
-
復(fù)制代碼 需要注意的是 在PHP 4.2.0 以及后續(xù)版本中,PHP 指令 register_globals 的默認(rèn)值為 off。這是 PHP 的一個(gè)主要變化。讓 register_globals 的值為 off 將影響到預(yù)定義變量集在全局范圍內(nèi)的有效性。例如,為了得到 DOCUMENT_ROOT 的值,將必須使用 $_SERVER['DOCUMENT_ROOT'] 代替 $DOCUMENT_ROOT,又如,使用 $_GET['id'] 來(lái)代替 $id 從 URL http://www.zhutiai.com/zhuti/HTC/ ?id=3 中獲取 id 值,亦或使用 $_ENV['HOME'] 來(lái)代替 $HOME 獲取環(huán)境變量 HOME 的值
我們看到代碼的第三行,英文的(句)號(hào),它可以將字符串連接起來(lái),變成合并的新字符串。
超全局變量 描述
$GLOBALS 包含一個(gè)引用指向每個(gè)當(dāng)前腳本的全局范圍內(nèi)有效的變量。該數(shù)組的鍵名為全局變量的名稱。從 PHP 3 開(kāi)始存在 $GLOBALS 數(shù)組。
$_SERVER 變量由 web 服務(wù)器設(shè)定或者直接與當(dāng)前腳本的執(zhí)行環(huán)境相關(guān)聯(lián)。類似于舊數(shù)組 $HTTP_SERVER_VARS 數(shù)組(依然有效,但反對(duì)使用)。
$_GET 經(jīng)由 URL 請(qǐng)求提交至腳本的變量。類似于舊數(shù)組 $HTTP_GET_VARS 數(shù)組(依然有效,但反對(duì)使用)。
$_POST 經(jīng)由 HTTP POST 方法提交至腳本的變量。類似于舊數(shù)組 $HTTP_POST_VARS 數(shù)組(依然有效,但反對(duì)使用)。
$_COOKIE 經(jīng)由 HTTP Cookies 方法提交至腳本的變量。類似于舊數(shù)組 $HTTP_COOKIE_VARS 數(shù)組(依然有效,但反對(duì)使用)。
$_FILES 經(jīng)由 HTTP POST 文件上傳而提交至腳本的變量。類似于舊數(shù)組 $HTTP_POST_FILES 數(shù)組(依然有效,但反對(duì)使用)
$_ENV 執(zhí)行環(huán)境提交至腳本的變量。類似于舊數(shù)組 $HTTP_ENV_VARS 數(shù)組(依然有效,但反對(duì)使用)。
$_REQUEST 經(jīng)由 GET,POST 和 COOKIE 機(jī)制提交至腳本的變量,因此該數(shù)組并不值得信任。所有包含在該數(shù)組中的變量的存在與否以及變量的順序均按照 php.ini 中的 variables_order 配置指示來(lái)定義。此數(shù)組在 PHP 4.1.0 之前沒(méi)有直接對(duì)應(yīng)的版本。參見(jiàn) import_request_variables()。
$_SESSION 當(dāng)前注冊(cè)給腳本會(huì)話的變量。類似于舊數(shù)組 $HTTP_SESSION_VARS 數(shù)組(依然有效,但反對(duì)使用)
常量:
常量是一個(gè)簡(jiǎn)單值的標(biāo)識(shí)符(名字)。如同其名稱所暗示的,在腳本執(zhí)行期間該值不能改變(除了所謂的魔術(shù)常量,它們其實(shí)不是常量)。常量默認(rèn)為大小寫敏感。通常常量標(biāo)識(shí)符總是大寫的。
常量名和其它任何 PHP 標(biāo)簽遵循同樣的命名規(guī)則。合法的常量名以字母或下劃線開(kāi)始,后面跟著任何字母,數(shù)字或下劃線。用正則表達(dá)式是這樣表達(dá)的:[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*
①是在程序執(zhí)行期間無(wú)法改變的數(shù)據(jù),常量的作用域是全局的。
②常量的命名與與變量相似,只是不帶美元符號(hào)“$”。一個(gè)有效的常量名由字母或者下劃線開(kāi)頭,后面跟報(bào)上任意數(shù)量的字母、數(shù)字或者下劃線。
③一般在PHP中常量都為大寫字母而且又分為系統(tǒng)常量和自定義常量。
系統(tǒng)常量我們就大概說(shuō)了 ,這個(gè)在后面的知識(shí)會(huì)介紹到。
1、__FILE__ 默認(rèn)常量,是指PHP程序文件名及路徑;
2、__LINE__ 默認(rèn)常量,是指PHP程序的行數(shù);
3、__CLASS__ 類的名稱;
自定義常量:通過(guò)define()函數(shù)來(lái)定義一個(gè)常量的,
其語(yǔ)法格式為:bool define ( string $name, mixed $value [, bool case_$insensitive] )
name:指定常量的名稱。
value:指定常量的值。
insensitive:指定常量名稱是否區(qū)分大小寫。如果設(shè)置為true則不區(qū)分大小寫;如果設(shè)置為false則區(qū)分大小寫。如果沒(méi)有設(shè)置該參數(shù),則取默認(rèn)值false。- <?php
- // 合法的常量名
- define("FOO", "something");
- define("FOO2", "something else");
- define("FOO_BAR", "something more");
- // 非法的常量名
- define("2FOO", "something");
- // 下面的定義是合法的,但應(yīng)該避免這樣做:(自定義常量不要以__開(kāi)頭)
- // 也許將來(lái)有一天PHP會(huì)定義一個(gè)__FOO__的魔術(shù)常量
- // 這樣就會(huì)與你的代碼相沖突
- define("__FOO__", "something");
- ?>
復(fù)制代碼 幾個(gè) PHP 的“魔術(shù)常量” 名稱 說(shuō)明
__LINE__ 文件中的當(dāng)前行號(hào)。
__FILE__ 文件的完整路徑和文件名。如果用在被包含文件中,則返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 總是包含一個(gè)絕對(duì)路徑(如果是符號(hào)連接,則是解析后的絕對(duì)路徑),而在此之前的版本有時(shí)會(huì)包含一個(gè)相對(duì)路徑。
__DIR__ 文件所在的目錄。如果用在被包括文件中,則返回被包括的文件所在的目錄。它等價(jià)于 dirname(__FILE__)。除非是根目錄,否則目錄中名不包括末尾的斜杠。(PHP 5.3.0中新增) =
__FUNCTION__ 函數(shù)名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數(shù)被定義時(shí)的名字(區(qū)分大小寫)。在 PHP 4 中該值總是小寫字母的。
__CLASS__ 類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時(shí)的名字(區(qū)分大小寫)。在 PHP 4 中該值總是小寫字母的。
__METHOD__ 類的方法名(PHP 5.0.0 新加)。返回該方法被定義時(shí)的名字(區(qū)分大小寫)。
__NAMESPACE__ 當(dāng)前命名空間的名稱(大小寫敏感)。這個(gè)常量是在編譯時(shí)定義的(PHP 5.3.0 新增)
原文來(lái)源:http://www.111cn.net/phper/php/42122.htm 轉(zhuǎn)載必須注明出處。
|
|