站長資訊網
        最全最豐富的資訊網站

        @PHP變量詳解(1)

        PHP 中一個美元符號后面跟上一個變量名稱,即表示一個變量。變量的名稱是對大小寫敏感的。變量名與 PHP 中其它的標簽一樣遵循相同的規則。一個有效的變量名由字母或者下劃線開頭,后面跟上任意數量的字母,數字,或者下劃線。按照正常的正則表達式,它將被表述 為:'[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*’

        AD:

        基礎

        PHP 中一個美元符號后面跟上一個變量名稱,即表示一個變量。變量的名稱是對大小寫敏感的。

        變量名與 PHP 中其它的標簽一樣遵循相同的規則。一個有效的變量名由字母或者下劃線開頭,后面跟上任意數量的字母,數字,或者下劃線。按照正常的正則表達式,它將被表述為:'[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*’

        注: 字母為 a-z,A-Z,ASCII 字符從 127 到 255(0x7f-0xff)。 

        <?php $var = "Bob"; $Var = "Joe"; echo "$var, $Var";      // outputs "Bob, Joe"  $4site = 'not yet';    // invalid; starts with a number $_4site = 'not yet';    // valid; starts with an underscore $t?yte = 'mansikka';    // valid; '洄 is (Extended) ASCII 228. ?>  

        PHP 3 中,變量總是傳值賦值。那也就是說,當你將一個表達式的值賦予一個變量時,整個原始表達式的值被賦值到目標變量。這意味著,例如,當一個變量的值賦予另外 一個變量時,改變其中一個變量的值,將不會影響到另外一個變量。有關這種類型的賦值操作,請參閱表達式一章。

        PHP 4 提供了另外一種方式給變量賦值:傳地址賦值。這意味著新的變量簡單的引用(換言之,“成為其別名” 或者 “指向”)了原始變量。改動新的變量將影響到原始變量,反之亦然。這同樣意味著其中沒有執行復制操作;因而,這種賦值操作更加快速。盡管如此,任何提速的 操作只有在緊密循環或者大數組或者對象才可能被注意到。

        使用傳地址賦值,簡單地追加一個(&)符號到將要賦值的變量前(源變量)。例如,下列代碼片斷兩次輸出‘My name is Bob’:

        <?php $foo = 'Bob';              // Assign the value 'Bob' to $foo $bar = &$foo;              // Reference $foo via $bar. $bar = "My name is $bar";  // Alter $bar... echo $bar; echo $foo;                // $foo is altered too. ?>   

        需要注意的是只有命名變量才可以傳地址賦值,這一點非常重要。

        <?php $foo = 25; $bar = &$foo;      // This is a valid assignment. $bar = &(24 * 7);  // Invalid; references an unnamed expression.  function test() {    return 25; }  $bar = &test();    // Invalid. ?>  

        預定義變量

        PHP 提供了大量的預定義變量。由于許多變量依賴于運行的服務器的版本和設置,及其它因素,所以并沒有詳細的說明文檔。一些預定義變量在 PHP 以命令行形式運行時并不生效。有關這些變量的詳細列表,請參閱“保留的預定義變量”一章。

        警告
        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 的值。

        更多相關信息,請閱讀配置項目 register_globals,有關安全性的一章使用 Register Globals,以及 PHP 4.1.0 和 4.2.0 的發行通告.

        請優先使用可用的 PHP 預定義變量,如 超級全局數組。

        從 PHP 4.1.0 開始,PHP 提供了一套附加的預定數組,這些數組變量包含了來自 Web 服務器(如果可用),運行環境,和用戶輸入的數據。這些數組非常特別,它們在全局范圍內自動生效,例如,在任何范圍內自動生效。為此,它們常因是 “autoglobals” 或者 “superglobals” 而聞名。(PHP 中尚且沒有一種可使用戶自定義超級全局變量的機制)超級全局變量羅列于下文中;但是為了得到它們的內容和關于 PHP 預定義變量的進一步的討論以及它們的本質,請參閱預定義變量。而且,你也將注意到舊的預定義數組($HTTP_*_VARS)仍舊存在。自 PHP 5.0.0 起,冗長的 PHP 預定義變量可以通過設置 register_long_arrays 來屏蔽。

        可變變量: 超級全局變量不能被用作可變變量.

        如果某些 variables_order 中的變量沒有設定,它們的對應的 PHP 預定義數組也是空的。

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 综合国产精品第一页| 国产精品欧美久久久天天影视| 精品免费久久久久久久| 久久亚洲中文字幕精品一区| 久久精品国产久精国产| 精品国产三级a∨在线欧美| 午夜精品久久久久9999高清| 国产精品v欧美精品v日本精 | 国产精品无圣光一区二区| 久久精品无码一区二区app| 四虎精品免费永久在线| 99在线热播精品免费99热| 精品久久久久中文字幕日本| 亚洲精品无码Av人在线观看国产 | 正在播放国产精品每日更新 | 欧美精品黑人粗大视频| 国产亚洲精品a在线观看 | 亚洲精品国产成人99久久| 国产精品欧美久久久天天影视| 精品欧洲av无码一区二区三区| 亚洲av无码精品网站| 亚洲国产成人一区二区精品区 | 精品久久久久久国产91| 99久久精品午夜一区二区| 经典国产乱子伦精品视频| 久久亚洲精品人成综合网| 日韩国产成人精品视频| 亚洲AV永久纯肉无码精品动漫| 中文字幕日韩精品有码视频 | 国产呦小j女精品视频| 精品精品国产理论在线观看| 国产欧美日韩精品专区| 精品一区二区三区免费视频 | 国语自产拍精品香蕉在线播放| 国产精品毛片久久久久久久| 精品久久一区二区三区| 午夜精品成年片色多多| 国产VA免费精品高清在线| 精品91自产拍在线观看二区| 精品国产乱码久久久久久浪潮| 黑人巨茎精品欧美一区二区|