我在想最佳的类型转换方法是什么。
我们应该使用哪种变体:
intval($value);
settype($value, 'int')
(int)$value
它们都会产生相同的结果。
(int)$value
与 intval($value)
和 settype($value, 'int')
相比,使用 (int)$value
可以减少一个函数调用。
而且,(int)$value
很简洁,所以我更喜欢这种方式。
当你需要使用 intval($value)
时,是因为你需要使用指定的基数进行转换(默认是10进制)。intval 接受第二个参数来指定转换的基数。
(int)$value
比其他方式更快。
它可能取决于您要转换的类型。PHP已经设计成可以在运行时转换类型。如果必要,它可以将字符串“5”转换为整数值5或浮点数5.0。这只是PHP的自然类型转换,但是有方法可以强制实现类似的行为。
在许多情况下,intval() 实际上比(int) 强制转换更快,特别是在将字符串转换为整数时。但是,由于我也编写C ++,因此我个人使用类型转换,因为我认为它更自然和整洁。然而,在不同情况下,结果略有不同。我从未想过 settype() 有什么前途。