在PHP中,支持8種原始類型,其中包括四種標量類型、兩種復合類型和兩種特殊類型。
PHP是一門松散類型的語言,不必向PHP聲明變量的數據類型,PHP會自動把變量轉換為自動的數據類型(與Python相似,鴨子模型)
四種標量類型:布爾(Boolean)、整型(Integer)、浮點型(Float)、字符串(String)、數組(Array)、對象(object)、NULL(空值)
1、布爾值
1 <?php 2 $man = "男"; 3 $flag = $man == "男"; // "==" 比較運算符 4 echo $flag ; 5 echo "<br />" ; 6 var_dump($flag); // "var_dump" 給我們表明了 "$flag" 為布爾類型 7 8 ?> 9 運行結果: 10 1 11 bool(true)
2、整型
1 <?php 2 $data_int1 = 123; 3 echo $data_int1; //123 4 var_dump($data_int1); //int(123) 5 echo "<br />"; 6 $data_int2 = -123; 7 echo $data_int2; //-123 8 echo "<br />"; 9 $data_int3 = 0123; 10 echo $data_int3; // 定義的是八進制,輸出的是十進制83 11 echo "<br />"; 12 $data_int4 = 0x123; //定義的是16進制,輸出的是十進制291 13 echo $data_int4; 14 echo "<br />"; 15 ?>
使用echo可以原樣輸出變量值,使用var_dump可以輸出變量類型
3、浮點類型
1 <?php 2 $num_float = 1.234; //小數點 3 $num_float = 1.2e3; //科學計數法,小寫e 4 $num_float = 7.0E-10; //科學計數法,大寫E 5 ?> 6 7 <?php 8 $num_float1 = 1.234; 9 echo $num_float1; 10 echo "<br />"; 11 $num_float2 = 1.2e3; 12 echo $num_float2; 13 echo "<br />"; 14 $num_float3 = 7.0E-3; 15 echo $num_float3; 16 echo "<br />"; 17 ?>
輸出結果:
1.234
1200
0.007
4、字符串
字符串可以有單引號、雙引號、Heredoc結構形式來表示
單引號里可以放入雙引號,雙引號里也可放入單引號
當單引號和雙引號里分別有變量時,例如:
1 $love = "I love you"; 2 <?php 3 $love = "I love you!"; 4 $string1 = "慕課網,$love"; 5 $string2 = '慕課網,$love'; 6 echo $string1; 7 echo "<br />"; 8 echo $string2; 9 ?>
輸出結果:
慕課網,I love you! 雙引號會輸出源字符串內容,
慕課網,$love 單引號會把變量名輸出
對於較長的字符串來說,可以用Heredoc來表示
1 <?php 2 $string1 = <<<GOD //GOD 是標識符可以按照自己的意願指定 3 我有一只小毛驢,我從來也不騎。 4 有一天我心血來潮,騎着去趕集。 5 我手里拿着小皮鞭,我心里正得意。 6 不知怎么嘩啦啦啦啦,我摔了一身泥. 7 GOD; //GOD 是標識符,結束需要占一行,且前后不能有空格 8 echo $string1; 9 ?>
5、數組
在PHP中數組分三種:
數值數組,即帶有數字id鍵的數組
1 如:$cars=array("Volvo","BMW","Toyota"); 2 3 使用for循環遍歷數值數組 4 <?php 5 $cars = array("Volvo","BMW", "Toyota"); 6 $carslength = count($cars); 7 8 for($x = 0;$x < $carslength;$x++){ 9 echo $cars[$x]; 10 } 11 ?>
關聯數組
$age = array("Peter" => "35", "Ben" => "39", "Joe" => "50");
關聯數組取值 $age["Peter"] $age["Ben"] $age["Joe"]
使用foreach循環遍歷關聯數組
1 foreach($age as $key => $value){ 2 3 echo $key.$value; 4 }
多維數組
PHP數組排序
數值數組
sort() 對數組進行升序排序
1 <?php 2 sort($cars); 3 $cars = array("Volvo","BMW","Toyota"); //按照首字母排序 4 print_r($cars); 5 ?>
rsort() 對數組進行降序排序
1 <?php 2 rsort($cars); 3 $num = array(1,2,8,9,3,8); 4 print_r($cars); 5 ?>
關聯數組
升序排序
$ age = array(“Peter”=>“35”,“Ben”=>“37”,“Joe”=>“43”);
asort() 根據關聯數組的value,進行排序
<?php asort($age); print_r ($age); ?>
ksort() 根據關聯數組的key, 進行排序
<?php asort($age); print_r ($age); ?>
降序排序
arsort() 根據關聯數組的value,進行降序排序
<?php arsort($age); print_r ($age); ?>
krsort() 根據關聯數組的key,進行降序排序
<?php krsort($age); print_r ($age); ?>
數組運算符
x+y 數組合並
x == y 如果x, y 具有相同的鍵值對,則返回true
x === y 如果x 和 y 具有相同的鍵值對,且順序相同,類型相同,則返回true
x != y 如果不相等,則返回true
x !== y 不恆等,則返回true
6、PHP第一種特殊類型資源——NULL
NULL是空類型,對大小寫不敏感,NULL類型只有一個取值。
表示一個變量沒有值,當被賦值為NULL,或者尚未被賦值,或者被unset(),這三種情況下變量被認為為NULL。
1 <?php 2 error_reporting(0); //禁止顯示PHP警告提示 3 $var; 4 var_dump($var); 5 $var1 = null; 6 var_dump($var1); 7 $var2 = NULL; 8 var_dump( $var2); 9 $var3 = "節日快樂!"; 10 unset($var3); 11 var_dump($var3); 12 ?>
7、PHP第二種特殊類型資源
資源是由專門的函數來建立和使用的,例如打開文件、數據連接、圖形畫布。
我們可以對資源進行操作(創建、使用和釋放)。任何資源,在不需要的時候應該被及時釋放。
如果我們忘記了釋放資源,系統自動啟用垃圾回收機制,在頁面執行完畢后回收資源,以避免內存被消耗殆盡
<?php $file=fopen("f.txt","r"); //打開文件 $con=mysql_connect("localhost","root","root"); //連接數據庫 $img=imagecreate(100,100);//圖形畫布 ?> <?php //首先采用“fopen”函數打開文件,得到返回值的就是資源類型。 $file_handle = fopen("/data/webroot/resouce/php/f.txt","r"); if ($file_handle){ //接着采用while循環一行行地讀取文件,然后輸出每行的文字 while (!feof($file_handle)) { //判斷是否到最后一行 $line = fgets($file_handle); //讀取一行文本 echo $line; //輸出一行文本 echo "<br />"; //換行 } } fclose($file_handle);//關閉文件 ?>
8、關於類型的比較
對PHP變量進行比較,包括松散和嚴格比較
" == " 只比較值,不比較類型
<?php if(42 == "42"){ echo "值相等"; } ?>
"===" 比較值 和 類型 ,兩者都相等才返回true
<?php if(42 === "42") { echo '2、類型相等'; } else { echo '3、不相等'; } ?>