1. 程式人生 > >php之型別轉換

php之型別轉換

php是弱型別語言,在運算中會根據運算子將資料轉換成該運算子所能處理的資料。

1.自動轉換

  1. if($a | 數字) { 。。。} //if裡面的變數或者數字會自動轉換成布林
  2. 算術運算子會將資料變為數字處理
$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.與型別相關的函式

  1. var_dump() :輸出一個變數的完整資訊
  2. getType():獲取一個變數的型別名稱,返回是一個型別名稱字串
  3. setType(變數,”目標類型別”); 設定一個變數的型別
  4. isset() 如果變數存在並且值不是 NULL 則返回 TRUE ,否則返回 FALSE 。
  5. empty 判斷一個變數資料是否為空
  6. unset() 銷燬一個變數
  7. is_int()
  8. is_numeric() —1 ,1.2 ,”1.2” ,”12” 都為真
  9. is_array() is_scalar—是否基本資料型別: string float int boolean
  10. is_null — 檢測變數是否為 NULL

這裡寫圖片描述