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

PHP intval() 函數完整指南:類型轉換與進制處理

     編輯:PHP 綜合知識

PHP intval() 函數詳解

intval() 是 PHP 內建的類型轉換函數,用於將混合型別的變數轉換為整數。它支援指定進制(基數),預設為十進制。函數簽名如下:

int intval ( mixed $var [, int $base = 10 ] )

參數說明

  • $var:要轉換的標量值(字串、整數、浮點數等)。
  • $base:轉換時使用的進制,範圍 2 到 36,預設為 10。

回傳值

成功時回傳轉換後的整數;失敗時回傳 0。空陣列與物件回傳 0,非空陣列與物件回傳 1。整數最大值取決於系統位元數:

  • 32 位元系統:-2,147,483,648 到 2,147,483,647
  • 64 位元系統:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

超出範圍的數值會被截斷為最大值。字串轉換遵循「從最左側開始解析數字」的規則,非數字開頭的字串通常回傳 0。

常見範例

<?php
echo intval(42);        // 42
echo intval(4.2);       // 4
echo intval('42');      // 42
echo intval('+42');     // 42
echo intval('-42');     // -42
echo intval(042);       // 34 (八進位 42 = 十進位 34)
echo intval('042');     // 42 (字串預設十進位)
echo intval(1e10);      // 1410065408 (浮點數溢位)
echo intval('1e10');    // 1 (字串解析到 '1' 為止)
echo intval(0x1A);      // 26 (十六進位)
echo intval(420000000000000000000); // 0 (超出 32 位元範圍)
echo intval('420000000000000000000'); // 2147483647 (截斷為最大值)
echo intval(42, 8);     // 42 (十進位 42 視為八進位輸入)
echo intval('42', 8);   // 34 (字串 '42' 以八進位解析)
?>

實務應用建議

在處理使用者輸入(如 $_GET['id'])時,常搭配 intval() 做基本防禦:

$id = intval($_GET['id']);

但需注意:intval() 無法防禦 SQL 注入,資料庫操作仍應使用預處理語句。

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