为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
白衣非少年 2019-11-13 15:14:18
intval和(int)之间有什么特别的区别吗?例:$product_id = intval($_GET['pid']);$product_id = (int) $_GET['pid'];上面两行代码之间有什么特别的区别吗?
查看完整描述

3 回答

?
弑天下

TA贡献1818条经验 获得超7个赞

intval()可以传递要转换的基础。(int)不能。


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


查看完整回答
反对 回复 2019-11-13
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

有一点需要注意的区别(int)和intval():intval()对待变量,已经是intS和floatS作为需要任何转换,无论基本参数的(如PHP 5.3.5至少)。正如在PHP doc页面上的注释中所指出的那样,这种行为并不是最明显的,并且在这里毫不客气地重申:


$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?


查看完整回答
反对 回复 2019-11-13
  • 3 回答
  • 0 关注
  • 538 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信