intval和强制转换为int-`(int)X`之间有什么特别的区别吗?

intval和(int)之间有什么特别的区别吗?


例:


$product_id = intval($_GET['pid']);

$product_id = (int) $_GET['pid'];

上面两行代码之间有什么特别的区别吗?


白衣非少年
浏览 541回答 3
3回答

弑天下

intval()可以传递要转换的基础。(int)不能。int intval( mixed $var  [, int $base = 10  ] )

慕盖茨4494581

有一点需要注意的区别(int)和intval():intval()对待变量,已经是intS和floatS作为需要任何转换,无论基本参数的(如PHP 5.3.5至少)。正如在PHP doc页面上的注释中所指出的那样,这种行为并不是最明显的,并且在这里毫不客气地重申:$test_int&nbsp; &nbsp; = 12;$test_string = "12";$test_float&nbsp; = 12.8;echo (int) $test_int;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// 12echo (int) $test_string;&nbsp; &nbsp; &nbsp; // 12echo (int) $test_float;&nbsp; &nbsp; &nbsp; &nbsp;// 12echo intval($test_int, 8);&nbsp; &nbsp; // 12 <-- WOAH!echo intval($test_string, 8); // 10echo intval($test_float, 8)&nbsp; &nbsp;// 12 <-- HUH?
打开App,查看更多内容
随时随地看视频慕课网APP