Board logo

標題: 2-3-2 變數的宣告 [打印本頁]

作者: 小誌    時間: 2011-4-17 23:33     標題: 2-3-2 變數的宣告

2-3-2   變數的宣告
在進行變數的宣告之前我們先來了解一下變數的種類,依據變數的影響可概分為兩種勢力範圍:全域變數(Global),影響範圍遍佈整個程式,包括函數(Function)、副程式(Sub)等全包了;區域變數(Local),勢力範圍較小,只限於宣告該變數的副程式(Sub)或函數(Function)中,當執行程序離開後,區域變數便失去效力而消失了。簡單的說,只要不是在函數(Function)或副程式(Sub)中宣告的變數就是全域變數啦!

到底要如何正確的宣告變數呢?在宣告變數之前我們必須加一個『$』字元符號,也就是說變數的宣告是從『$』字元符號開始:
  1. $變數名稱=初始值;
複製代碼
例如:
  1. $intNumber=5;
  2. $StrName=”維尼”;
複製代碼
那在宣告變數時,我可不可以不指定變數的初始值ㄚ,答案是不行,這樣會產生「Undefined variable」的錯誤提示:
  1. <?
  2. $intNumber=5;
  3. $strName;
  4. echo $intNumber;
  5. ?>
複製代碼
[attach]5455[/attach]
圖2-11   範例ch02_04.php。
作者: 小誌    時間: 2011-4-17 23:34

變數會因程式的執行而變動所存放的資料內容!
例如:我們使用一個變數「x」,同時將變數x的值(也就是變數內所儲放的資料內容)指定為「我討厭PHP」,然後把變數x資料內容輸出到網頁中,則網頁出現一個「我討厭PHP」,接著我們再將變數x的值指定為「我喜歡PHP」,把變數x資料內容再次輸出到網頁中,網頁中卻出現一個「我喜歡PHP」,由此可知:在程式執行的過程中,變數的值是可變動的!(範例ch02_05.php)
  1. <?
  2. $x="我討厭PHP"; //宣告變數
  3. echo $x;
  4. $x="我喜歡PHP"; //重新定義變數
  5. ?>
  6. <p>
  7. <?
  8. echo $x;
  9. ?>
複製代碼
[attach]5456[/attach]
圖2-12   重複利用變數。
作者: 小誌    時間: 2011-4-17 23:35

查詢變數的資料型態
若想得知變數的資料型態,可利用gettype()函數,此函數可取回integer、duble、string、array、object、class、unknown type等型態:(範例ch02_05a.php)
  1. <?
  2. $x="我討厭PHP";
  3. echo gettype($x);  //輸出string
  4. echo "<br>";

  5. $x=123;
  6. echo gettype($x);  //輸出integer
  7. echo "<br>";

  8. $x=123.321;
  9. echo gettype($x);  //輸出double
  10. echo "<br>";
  11. ?>
複製代碼

作者: 小誌    時間: 2011-4-17 23:37

變數的資料型態轉換
雖然在宣告變數時,不需要定義變數的資料型態,因為根據不同的變數使用時機, PHP會自動的識別變數內的資料是屬於何種資料型態!但我們亦可強迫進行變數的型態轉換,例如:(範例ch02_05b.php)
  1. <?
  2. $a = 10;    // 此時變數為integer
  3.   echo gettype($a); //輸出資料型態integer

  4. echo "<br>";

  5. $a = (string)$a;  //將變數的資料形態轉換為string
  6.     echo gettype($a); //輸出資料型態string
  7. ?>
複製代碼
 當字串被轉換成值數值資料時,以字串的開頭字元能否辨識為基準,無法辨識的均轉為數值 0。(範例ch02_05c.php)
  1.  <?
  2. $a = "1abc";    // 此時變數為字串
  3.   echo gettype($a); //輸出資料型態string

  4. echo "<br>";

  5. $a = (int)$a;  //將變數的資料形態轉換為整數
  6.     echo gettype($a); //輸出資料型態integer

  7. echo "<br>";

  8. $a = "e2";    // 此時變數為字串
  9. $a = (int)$a;  //將變數的資料形態轉換為整數
  10.   echo ($a); //輸出資料值為0
  11. ?>
複製代碼
另外,利用settype()函數亦可改變變數的資料型態:
  1. settype(變數 , 資料型態)
複製代碼
例如:(範例ch02_05d.php)
  1. <?
  2. $a = "3abc";    // 此時變數為字串
  3. $b = 5;
  4. settype($a,"integer"); //將變數的資料形態轉換為整數
  5. echo ($a*$b); //輸出資料值為15
  6. ?>
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)