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

PHP 型別判斷函數完整對照:數字、字串、物件、陣列檢測

     編輯:PHP 綜合知識

PHP 提供豐富的型別檢測函數,本文整理 is_* 系列函數的用法、別名關係與實戰範例,幫助開發者精準判斷變數型別。

核心函數對照表

函數檢測型別別名/備註
is_bool()布林值—
is_int() / is_integer() / is_long()整數三者為別名
is_float() / is_double() / is_real()浮點數三者為別名
is_numeric()數字或數字字串含 "123", "1.23", "0xFF"
is_string()字串—
is_array()陣列—
is_object()物件—
is_null()NULL—
is_scalar()純量(整數、浮點、字串、布林)不含陣列/物件/資源
is_callable()可呼叫函數名、閉包、實作 __invoke 的物件
is_resource()資源型別檔案句柄、DB 連線等

實戰範例

<?php
// 整數判斷
$pageCount = 2234;
if (is_integer($pageCount)) echo "$pageCount is an integer<br>";

// 浮點數判斷
$temp = 15.23;
if (is_double($temp)) echo "Temperature is a double<br>";

// 物件判斷
class Widget { public $name; public $length; }
$thing = new Widget();
if (is_object($thing)) echo "thing is an object<br>";

// 字串判斷
$greeting = "www.example.com";
if (is_string($greeting)) echo "Greeting is a string<br>";

// 數字/數字字串判斷
$val = "123";
if (is_numeric($val)) echo "這是個真正的數字字串<br>";
?>

常見誤區與技巧

is_numeric() vs is_int()
is_numeric("123") 為 true,is_int("123") 為 false(字串非整數型別)
浮點數精度
is_float(1.0) 為 true,但 1.0 === 1 為 true(PHP 自動轉型)
物件檢測
is_object() 僅檢測是否為物件實例,不檢測類別繼承關係,請用 instanceof
陣列檢測
is_array() 為最準確判斷,isset($arr[0]) 可能誤判

gettype() 與 get_debug_type() (PHP 8+)

<?php
var_dump(gettype($val));        // 回傳型別字串:integer, double, string, array, object...
var_dump(get_debug_type($val)); // PHP 8+ 更精確:int, float, string, array, class Name...
?>

建議:條件判斷用 is_*,除錯輸出用 get_debug_type()。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved