首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 數據類型轉換的三種方式完整指南

     編輯:PHP 綜合知識

可轉換的目標類型

類型關鍵字說明
(int) / (integer)整型
(float) / (double) / (real)浮點型
(string)字符串
(bool) / (boolean)布爾型
(array)數組
(object)對象

方式一:強制類型轉換運算符(推薦,簡潔)

在變量前加上目標類型關鍵字(括號包裹):

<?php
$num1 = 3.14;
$num2 = (int)$num1;
var_dump($num1); // float(3.14)
var_dump($num2); // int(3)

$str = "123abc";
$int = (int)$str;    // 123
$float = (float)$str; // 123
$bool = (bool)$str;   // true (非空字符串)
?>

方式二:專用轉換函數

函數等價轉換說明
intval($var)(int)$var轉整型,支援進制參數
floatval($var)(float)$var轉浮點型
strval($var)(string)$var轉字符串
<?php
$str = "123.9abc";
$int = intval($str);     // 123
$float = floatval($str); // 123.9
$str2 = strval($float);  // "123.9"
?>

方式三:通用 settype() 函數

直接修改原變量,返回 bool 表示是否成功:

<?php
$num = 12.8;
$ok = settype($num, "int");
var_dump($ok);  // bool(true)
var_dump($num); // int(12)

// 可用類型字符串: "int", "integer", "float", "double", "string", "array", "object", "bool", "boolean"
?>

三種方式對比

特性強制轉換專用函數settype()
語法風格運算符函數調用函數調用
返回值轉換後的值轉換後的值bool(成功與否)
原變量不變不變被修改
適用場景臨時轉換、表達式中語義明確、需進制處理原地修改、動態類型名
效能最快略慢(函數調用)略慢

常見陷阱

  • (int)"abc" → 0(非數字開頭字符串轉整為 0)
  • (bool)[] → false(空數組),(bool)[1] → true
  • settype($arr, "int") 會銷毀數組結構,慎用
  • JSON 解碼後的數字可能是 float,存入 MySQL INT 欄位前建議 intval()

最佳實踐

  1. 優先使用 強制類型轉換運算符,代碼簡潔高效
  2. 需進制轉換(如十六進制字符串轉整)用 intval($str, 16)
  3. 動態類型名(如配置驅動)用 settype() 或 call_user_func('intval', $var)
  4. 嚴格類型模式(declare(strict_types=1))下更需顯式轉換
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved