麻辣家族討論版版's Archiver

小誌 發表於 2011-4-17 23:33

2-3-2 變數的宣告

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

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

小誌 發表於 2011-4-17 23:34

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

小誌 發表於 2011-4-17 23:35

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

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

$x=123.321;
echo gettype($x);  //輸出double
echo "<br>";
?>[/code]

小誌 發表於 2011-4-17 23:37

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

echo "<br>";

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

echo "<br>";

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

echo "<br>";

$a = "e2";    // 此時變數為字串
$a = (int)$a;  //將變數的資料形態轉換為整數
  echo ($a); //輸出資料值為0
?>[/code]另外,利用settype()函數亦可改變變數的資料型態:[code]settype(變數 , 資料型態)[/code]例如:(範例ch02_05d.php)[code]<?
$a = "3abc";    // 此時變數為字串
$b = 5;
settype($a,"integer"); //將變數的資料形態轉換為整數
echo ($a*$b); //輸出資料值為15
?>[/code]

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供