變量是用於臨時存儲值的容器。這些值能夠是數字、文本,或者複雜得多的排列組合。變量在任何編程語言中都居於核心地位,理解它們是使用php的關鍵所在。下面將詳細介紹php中的變量javascript
[注意]關於javascript中的變量部分移步至此php
php的特性之一就是它不要求在使用變量以前聲明變量,當第一次給一個變量賦值時,才建立了這個變量html
變量以$符號開頭,其後是變量的名稱。這使得PHP語言解析速度更快,由於解析器只要遇見這個符號就會當即知道接下來的是一個變量java
變量名稱必須以字母或下劃線開頭,對大小寫敏感。編程
<?php $x=5; echo $x;//5 echo $X;//報錯 ?>
[注意]內置結構和關鍵字以及用戶自定義的類名和函數名是不區分大小寫的,好比echo、while、函數名稱等均可以任意大小寫數組
<?php //輸出123 echo 1; Echo 2; eCho 3; ?>
php中有一些是系統定義的,也稱爲關鍵字,是php語言的組成部分、所以不能使用它們中的任何一個做爲常量、函數名或類名。可是和其餘語言不一樣的是,系統關鍵字能夠在php中做爲變量名稱使用,不過這樣容易混淆,因此最好仍是不要以php關鍵字做爲變量名稱編程語言
<?php //輸出123 $echo = 123; echo $echo; ?>
下面是經常使用的php關鍵詞列表函數
abstract and array as break callable case catch class cloneconst continue declare
default diedo echo else elseif emptyenddeclare endfor endforeach endif
endswitchendwhile eval exit extends final finally for foreach function global
goto if implements include instanceof insteadof interface isset list namespace
new or print private protectedpublic require return static switchthrow trait
try unset usevar while xor yield
通常地,變量老是傳值賦值,也就是說,將一個表達式的值賦予一個變量時,整個原始表達式的值被賦值到目標變量。這意味着,一個變量的值賦予另一個變量時,改變其中一個變量的值,將不會影響到另一個變量ui
[注意]雖然在PHP中並不須要初始化變量,但對變量進行初始化是個好習慣。未初始化的變量具備其類型的默認值——布爾類型的變量默認值是FALSE,整型和浮點型變量默認值是0,字符串型變量默認值是空字符串,數組變量的默認值是空數組spa
<?php $a1 = 123; $a2 = $a1; $a1 = 234; //輸出234 echo $a1; echo '<br>'; //輸出123 echo $a2; ?>
php中提供了另一種方式給變量賦值:引用賦值。這意味着新的變量簡單地引用了原始變量。改動新的變量將影響到原始變量,反之亦然
使用引用賦值,簡單地將一個'&'符號加到源變量前便可
<?php $a1 = 123; $a2 = &$a1; $a1 = 234; //輸出234 echo $a1; echo '<br>'; //輸出234 echo $a2; ?>
一個變量的變量名能夠動態地設置和使用。一個普通的變量經過聲明來設置,而一個可變變量獲取了一個普通變量的值做爲這個可變變量的變量名
<?php $hi = 'hello'; $$hi = 'world'; echo "$hi $hello";//'hello world' echo "$hi ${$hi}";//'hello world' ?>
變量函數數量衆多,一些函數會在後面博文再作相關介紹。如今,主要介紹isset()、unset()和var_dump()這三個函數
var_dump()函數用來返回變量的類型和值
<?php $p = 3.14; var_dump($p);//float 3.14 $p = 'abc'; var_dump($p);//string 'abc' (length=3) ?>
unset()函數用來釋放指定的變量
<?php $p = 'abc'; echo $p;//'abc' unset($p); echo $p;//報錯 ?>
isset()函數用來檢測變量是否設置,當一個變量被設置爲NULL或被釋放,則返回false,不然返回true
[注意]對於表單控件type="radio"或select控件,能夠使用isset()函數來判斷值是否爲空。若是是type="text"的輸入框,則須要使用empty()來判斷
<?php $p = 'abc'; var_dump(isset($p));//boolean true $p = NULL; var_dump(isset($p));//boolean false unset($p); var_dump(isset($p));//boolean false ?>