[PHP]變量Variables與常量Constants

兩個都可以拿來做變數宣告,請問差異?


變量

是拿來儲存資訊的容器
$x="字串"
$y=數值
也可以做運算,如 $z=$x+$y
※變量大小寫敏感
變量的作用域分三種型態

  1. local (區域)

  2. global (全域)

  3. static (靜態)


區域變數:
寫在function 外的變數不會影響到內部值
同樣的function 內的變數不會影響 function外的值

全域變數:
可以在function內使用global $x,$y;來呼叫外部變數
使得funtion取得外部$x與$y兩個變數做使用
同時讓該變數變成全域變數
或是在funtion內直接使用
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
經過$GLOBALS的y也會變成全域變數

static:
一般來說變數完成運算後會刪除運算後結果,不會對原始變數做改動
例如在function內對全域變數$x做++,在functino外呼叫$x仍是原始值
但有時後我們需要保留該區域變量做後續運算,這時候static就派上用場
執行:
<?php

function myTest() {
static $x=0;
echo $x;
$x++;
}

myTest();
myTest();
myTest();

?>

輸出的結果是
0
1
2
之後當變數被呼叫的時候會的值都是該變量最後一次被調用時儲存的值
但是該變數還是function的局部變量

接下來講常量


常量類似變量,但是常量一旦定義後就無法更改或是取消定義
與變量不同,常量是自動為全域變數,而且預設為大小寫敏感
定義方式:
<?php
define("GREETING", "Hello PHP");
echo GREETING;
?>

若是echo greeting 則不會有動作
如果要設定為大小寫不敏感
則改成:
<?php
define("GREETING", "Hello PHP", true);
echo greeting;
?>

這時大小寫可不在意。

以上是變量Variables與常量Constants的主要差異

留言