2018-1-24 數據類型和運算符
有關於php數據類型和運算符的相關知識:
整體劃分:
標量類型: int, float, string, bool
復合類型: array, object
特殊類型: null, resouce
整數類型:int integer
整數進制:十進制、八進制、十六進制
十進制轉二進制:$v1 = decbin(123); 註意:參數必須是10進制數字,轉換後的結果必然是二進制字符串。
十進制轉八進制:$r1 = decoct(十進制數字); 結果是一個8進制數字字符串。
十進制轉十六進制:dechex(十進制數字); 結果是16進制數字字符串。
二進制轉十進制:$v1 = bindec(“二進制數字
八進制轉十進制:$v1 = octdec(“8進制數字字符串”) ; 得到的結果是10進制數字
十六進制轉十進制:$v1 = hexdec(“16進制數字字符串”) ;//得到的結果是10進制數字
註意:十進制轉為其他進制結果是字符串,其他進制轉為十進制要求給定數據是字符串形式。
浮點類型:float、double、real
$v1 = 1.234; 帶小數點,,就是浮點類型。
$v2 = 1.234E3; 含義是:1.234乘以10的3次方,即1234,帶E的形式就是浮點數。
浮點數不應直接進行大小比較。
當整數運算的結果超出整數的範圍後,會自動轉換為浮點數。(整數的範圍,在32位系統下,大約正負20多億)
字符串類型string:
在php中,單引號和雙引號字符串,是有不同細節含義的字符串。
單引號字符串:
$s1="php34.com";
$str1=‘ab\nc"d\‘efg:$s1‘;
echo"<p>$str1</p>";
結果:ab\nc"d\‘efg:$s1
雙引號字符串:
$str2="ab\nc"d\",\101,\x41,efg:$s1";
echo"<p>$str2</p>"
結果:ab c‘ d",A,A,efg:php34.com
布爾類型:bool,boolean
用於標識某種只有兩個狀態值的數據:true,false
在php中,其他各種數據,隱含轉換為布爾值的時候,
其他數據就當作true來看待了。
數組類型:arrgy
php中,數組的下標可以使用整數或字符串。數字下標常說“索引號”,字符串下標常說“鍵名”。
數組中還可以存儲數組,就可以構成“多維數組”的形式。
數組遍歷在php中有專門語法:
foreach( 數組名 as 下標變量$k => 值變量$v1 ){
//這裏就是循環體,就可以使用兩個變量$k, $v1
}
對象類型object
php中的對象,通常都是指自己定義的對象,純語法的。
資源類型resource
空類型null
類型轉換:
常用的一個轉換(不管是自動轉換還是強制轉換),就是字符串轉換為數字:
“5” ==>> 5 //整數
“5.5” ==>> 5.5浮點數
“5abc” ==>> 5整數
“5.5ab” ==>> 5.5浮點數
“abc5” ==>> 0整數
“abc” ==>> 0整數
“” ==>> 0
從左往右第一個數字,如果開頭是字母,取0;空值,取0;
與類型相關的系統函數:
var_dump() 能夠輸出一個變量的完整信息。
getType() 獲取一個變量的類型名稱,結果是一個單詞(字符串);
setType() 設置一個變量的類型,
isset() 判斷一個變量是否存在數據;
empty() 判斷一個數據是否為空;
unset() 銷毀(刪除)一個變量。
運算符:+、-、*、/、%(取余)
註意取余運算%,先取整,再取余。
自增自減:
常規:對數字進行自加1或自減1。
字符串: 只能自增,且自增的效果就是“下一個字符”。
布爾值遞增遞減無效。
null遞減無效,遞增結果為1。
比較運算符:
如果有布爾值,均轉為布爾值比較:規則:true > false
如果兩邊都是純數字字符串,轉為數字比較;否則,就按字符串比較
字符串的比較規則為:按字符的先後順序依次一個一個比較,發現哪個大,則就表示整體大,後續不再比較。
三目運算符:
形式為:數據1 ? 數據2 :數據3 (數據1成立執行數據2,不成立執行數據3)
2018-1-24 數據類型和運算符