初探語法資料型態外部變數環境變數運算元流程控制引用檔案函數物件
PHP 簡介

變數與常數

 變數的型態不用預先宣告,其型態視其所指定的值而定。使用變數須在變數名稱前加上「$」符號。變數命名有大小寫之區分,可以使用英文字母、數字、底線、ASCII 127∼255 的字元,但開頭必須是英文字母或底線。

內定變數
 在 PHP 執行時,有部份預設的變數可用,您可以執行 phpinfo( ) 以查看這些變數。例如:
 SERVER_NAME:chensh.loxa.edu.tw
 HTTP_USER_AGENT:CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
 SCRIPT_FILENAME:/home/chensh/php/A_4.php
 如果 php.ini 中 register_globals 被設定為 on 的話,上述的變數直接在前頭加上 $ 符號即可使用,例如:$SERVER_NAME。
 倘若 register_globals 被設定為 off(預設值)的話,上述變數的讀取方法就不一樣了,它們被當作是 $_SERVER 陣列的一個元素,請用 $_SERVER['變數名稱'] 的方式來讀取它,例如:$_SERVER['SERVER_NAME']。

變數影響範圍
 變數的影響範圍通常是 global,自啟用起,至該程式結束均有效;但在自定的函數中,變數的影響範圍是 local,只侷限在函數內部。例:
 <?
 $a = 1;
 $b = 2;
 function sum_test( ) {
   return $a + $b;
 }
 echo sum_test( );
 ?>
 執行結果為 0,因為 $a 與 $b 的影響範圍無法達到 sum_test( ) 內部。若希望在自定函數內引用外部的變數,則使用關鍵字 global 宣告,或是使用 global 變數陣列 $GLOBALS[ ]。
 <?
 $a = 1;
 $b = 2;
 function sum_test_1( ) {
   global $a, $b;
   return $a + $b;
 }
 function sum_test_2( ) {
   return $GLOBALS["a"] + $GLOBALS["b"];
 }
 echo sum_test_1( );
 echo sum_test_2( );
 ?>
 sum_test_1( ) 與 sum_test_2( ) 的執行結果均為 3。

以變數為名的變數(Variable Variables)
 在 PHP 中,變數的名稱也可以是變數,例如:
 <?
 $a = "hello";
 $$a = "world";
 echo $a . " " . $$a;    // 輸出結果:hello world
 echo $a . " " . ${$a};    // 輸出結果:hello world
 echo $a . " " . $hello;    // 輸出結果:hello world
 ?>
 在處理大量變數,且名稱均相似時,以變數為名的變數就可以使得程式更為精簡、更具彈性。以下兩段程式的功能是相同的,均可將 $a1, $a2, ...., $a10 的值秀出來,但第二段程式使用了以變數為名的變數:
 <?
 $a1 = 2;
 $a2 = 4;
 $a3 = 6;
 $a4 = 8;
 $a5 = 10;
 $a6 = 12;
 $a7 = 14;
 $a8 = 16;
 $a9 = 18;
 $a10 = 20;

 第一種做法:
 echo $a1;
 echo $a2;
 echo $a3;
 echo $a4;
 echo $a5;
 echo $a6;
 echo $a7;
 echo $a8;
 echo $a9;
 echo $a10;

 第二種做法:
 for ( $i=1; $i<=10; $i++ )
   echo ${"a" . $i};
 ?>

常數
 在 PHP 中,常數的名稱一樣有大小之別,但是前頭不必加上「$」字元,因此,若將常數置於字串裡頭的話,將不會被系統所辨識出來。您也可以使用 define( ) 函數來自定常數。
 __FILE__:/home/chensh/php/A_4.php
 PHP_OS:FreeBSD
 PHP_VERSION:4.3.9

初探語法資料型態外部變數環境變數運算元流程控制引用檔案函數物件