php之型別轉換
阿新 • • 發佈:2019-02-01
php是弱型別語言,在運算中會根據運算子將資料轉換成該運算子所能處理的資料。
1.自動轉換
- if($a | 數字) { 。。。} //if裡面的變數或者數字會自動轉換成布林
- 算術運算子會將資料變為數字處理
$a = "3";
$b = "5";
$c = $a + $b ;
var_dump($c);// 8 integer
3. 連線運算子. 轉成字串型別
$str = '123'.true.'abc';// 1231abc string
4. 比較運算子,分幾種情況
①兩個數字比較–正常情況
②其中有一個數據是布林型的,則都轉成布林型進行比較 true>false
③資料中沒有布林型的,但其中有一個數據是數字,則轉成數字 比較
④兩邊都是數字字串,轉成數字來比較
⑤比較運算子中兩邊都是字串型別,從首個字元開始依次比較ASCII值,哪個大就停止後續比較。
一些轉換規則:
“12” –> 12
“1.2” –> 1.2
“1.2a”- –> 1.2
“a1.2” —> 0
“1.1a1” —> 1.1
“0” —> false
“1” —> true
0 —> false
“0.0” —> true
“abc” —> 0
“” —> 0
“” – >false
<?php
header("content-type:text/html;charset=utf-8");
$name = "tom";
if($name)
{
echo '$name為真'.'<hr>';
}else
{
echo '$name為假'.'<hr>';
}
//1.在算數運算子中的型別轉換 :會轉換成數字進行計算
$a = "1.1";//"1.1a" 會轉換成1.1 , "a1.1"會轉換成0
$b = "7";
$c = $a + $b ;
echo $c," ",getType($c),'<hr>';//12 double
//連線運算子.其結果是字串型別
$a = 5;
$b = true;// true 轉換為 1 , false 轉換成 0
$c = $a.$b ;
echo $c," ",getType($c),'<hr>';//51 string
//比較運算子,其結果一定是true或false
$a = false ;
$b = 5;
//如果兩邊至少一個布林值,則把非布林值資料轉為布林值比較,其結果型別也是布林
$c = ($a < $b);//這裡$b轉為true , $c = false < true;
echo $c," ",getType($c),'<hr>';//1 boolean
//比較運算子中,兩邊不存在布林型別但存在數字,則都轉為數字型別比較
$a = 5 ;
$b = "abc";//$b 要轉為數字比較,這裡為0
$c = ($a > $b);
echo $c," ",getType($c),'<hr>';//1 boolean
//比較運算子中兩邊都是字串型別
$a = "abc" ;
$b = "abd";
$c = ($a < $b);//從首個字元開始依次比較ASCII值,哪個大就停止後續比較
echo $c," ",getType($c),'<hr>';//1 boolean
2.強制轉換
$a = 11.5;
$b = (int)$a;//強制轉換成int賦值給$b
echo $a." 型別:".getType($a).'<hr>';//11.5 型別:double
echo $b." 型別:".getType($b).'<hr>';//11.5 型別:double
$c = (string)$a;
echo $c." 型別:".getType($c).'<hr>';//11.5 型別:11.5 型別:string
$d = (boolean)$a;
echo $d." 型別:".getType($d).'<hr>';//1 型別:boolean
$e = (float)$b;//強制轉換成浮點數
echo $e." 型別:".getType($e).'<hr>';//11 型別:double
setType($c,"float");
echo $c." 型別:".getType($c).'<hr>';//11.5 型別:double
3.與型別相關的函式
- var_dump() :輸出一個變數的完整資訊
- getType():獲取一個變數的型別名稱,返回是一個型別名稱字串
- setType(變數,”目標類型別”); 設定一個變數的型別
- isset() 如果變數存在並且值不是 NULL 則返回 TRUE ,否則返回 FALSE 。
- empty 判斷一個變數資料是否為空
- unset() 銷燬一個變數
- is_int()
- is_numeric() —1 ,1.2 ,”1.2” ,”12” 都為真
- is_array() is_scalar—是否基本資料型別: string float int boolean
- is_null — 檢測變數是否為 NULL