變量的引用和賦值:
php中引用和C++中的完全不同,$a=&$b;這是PHP中用a作為b的引用,而在C++中,int&a=b;是C++的用a做b的引用,而且C++中引用必須初始化。
在PHP中不僅代碼形式不同,在PHP中引用不會導致$a和$b在內存上同體,只是把各自的值關聯起來。基于這一點,使用unset()則不會導致所有引用變量消失。只是互相取消關聯。
變量的類型:
PHP和javaScript一樣是弱類型語言,對于C++這種強類型語言來說變量這個“柜子”在制作之前就要決定這個柜子是什么類型的,書柜只能裝書,衣柜只能裝衣服。對于PHP,Javascript這種弱類型語言來說,變量這個柜子,對于同一個柜子,你用來裝書,它就是書柜,你用來裝衣服,它就是衣柜。
在PHP中變量的類型是由PHP根據該變量使用的上下文在運行時決定的。
<?php $bool=true; $str="abcd"; $int=100;//用var_dump來查看表達式的值和類型 var_dump($bool); var_dump($str); var_dump($int);結果為:
boolean truestring 'abcd' (length=4)int 100布爾型:在PHP中,布爾型不是只有TRUE或FALSE兩個值,當運算符,函數或流程控制需要一個boolean參數時,任何類型的值PHP都會自動轉換成布爾型的值:
1:整形 0為FALSE其余為TRUE。
2:浮點數0.0為FALSE。
3:空白字符串和字符串“0”。
4:沒有成員變量的數組。
5:沒有單元的對象(僅適用于PHP4)。
6:特殊類型NULL(包括尚未設定的變量)。
聲明bool型數據如下:
<?php var_dump((bool) ""); var_dump((bool) 1); var_dump((bool) -2); var_dump((bool) 0); var_dump((bool) "foo"); var_dump((bool) array(12)); var_dump((bool) array()); var_dump((bool) "false");結果為:
boolean falseboolean trueboolean trueboolean falseboolean trueboolean trueboolean falseboolean true整形:整形數的字長和平臺相關,PHP不支持無符號整數,如果一個數超過了integer這個范圍會被解釋為float。
浮點型:
浮點數的字長和平臺相關,
字符串:(注意PHP中沒有char類型)
PHP中字符串可以是一個字符,也可以是多個字符(和C++不同),可以使用單引號、雙引號、定界符定義,區別如下:
單引號:
單引號主要用于定義簡單字符串。
在單引號字符串中出現的變量不會被變量值替代。
單引號中再包含單引號要用轉義字符/'來代替。
單引號之前或字符串尾包含反斜線要用轉義字符//代替。
除了上面兩種轉義字符,其他的轉義都是無效的。所以在定義簡單字符串時,使用單引號效率會更高,因為PHP解析時不會花費一些處理字符轉義和解析變量上的開銷。注:HTML標簽他還是認識的。
$a='abcde/'abc/'js/nk<br>'; echo "$a$a";輸出:
abcde'abc'js/nkabcde'abc'js/nk雙引號:
當用雙引號指定字符串時,其中的變量會被解析。如果是復雜的語句,可以用花括號括起一個表達式
<?php //定義一個變量名為$beer的變量 $beer='abcdefg'; //可以將下面的變量$beer解析,因為(‘)在變量中是無效的 echo "abc$beer'sjfifj<br>"; //不可以解析變量,因為“s"在變量名中是有效的,沒有$beers這個變量 echo "abc$beers<br>"; //使用花括號包含起來 echo "abc{$beer}s<br>";定界符:
在"<<<"之后提供一個標識符開始,然后是包含的字符串,最后是同樣的標識符結束字符串。
結束標識符必須從行的第一列開始,并且后面除了分號不能包含其他的字符,空格及空白制表符都不可以,標識符也必須遵循PHP中標簽的命名規則。
定界符不能初始化類成員。
NULL類型:
NULL的唯一可能值就是NULL,NULL不表示空格,也不表示零,也不是空字符串,在PHP中NULL不區分大小寫,下列情況下一個變量被認為是NULL
將變量直接賦值為NULL
聲明的變量尚未賦值
被unset()函數銷毀的變量。
<?php $a=null; $b='abc'; unset($b); var_dump($a); var_dump($b); var_dump($c);
新聞熱點
疑難解答
圖片精選