intval 和强制转换为 int - '(int) X' 之间有什么特别的区别吗?
2022-08-30 06:10:09
intval 和 (int) 之间有什么特别的区别吗?
例:
$product_id = intval($_GET['pid']);
$product_id = (int) $_GET['pid'];
上述两行代码之间有什么特别的区别吗?
intval 和 (int) 之间有什么特别的区别吗?
例:
$product_id = intval($_GET['pid']);
$product_id = (int) $_GET['pid'];
上述两行代码之间有什么特别的区别吗?
关于 和 之间的区别需要注意的一点是:将已经是 s 和 s 的变量视为不需要转换,而不管基参数如何(至少从 PHP 5.3.5 开始)。这种行为并不是最明显的,正如PHP文档页面上的评论所指出的那样,并在这里无耻地重申:(int)
intval()
intval()
int
float
$test_int = 12;
$test_string = "12";
$test_float = 12.8;
echo (int) $test_int; // 12
echo (int) $test_string; // 12
echo (int) $test_float; // 12
echo intval($test_int, 8); // 12 <-- WOAH!
echo intval($test_string, 8); // 10
echo intval($test_float, 8) // 12 <-- HUH?