我想知道将值从一种类型转换为另一种类型的最佳方法是什么。
我们应该使用哪种变体:
intval($value);
settype($value, 'int')
(int)$value
所有这些都产生相同的结果。
答案 0 :(得分:23)
(int)$value
将一个函数调用与intval($value)
和settype($value, 'int')
进行比较。
(int)$value
足够干净,所以我更喜欢这种方式。
当您需要使用intval($value)
时,需要使用指定的基数进行转换(默认值为10)。 intval接受转换基础的第二个参数。
答案 1 :(得分:16)
我更喜欢使用
settype($value,getType(intval((int)$value)));
答案 2 :(得分:6)
这里的答案是使用任何读物"清洁剂"给你。速度的任何差异都将是如此微小,担心它几乎肯定会花费你比你可以节省更多的时间。然而,节省时间的是拥有您可以在以后阅读和理解的代码。
有一篇优秀的文章在Coding Horror解释了这件事。
答案 3 :(得分:2)
(int)$value
比其他方式快得多
答案 4 :(得分:2)
这取决于您要转换的类型。 PHP已经设计为即时转换类型。如果需要,它可以将字符串'5'转换为整数值5或浮点数5.0。这只是PHP的自然类型转换,但有一些方法可以强制执行类似的行为。
在许多情况下,intval()实际上可以比(int)类型转换更快,特别是在字符串到整数转换中。但就个人而言,我也写C ++,我使用类型转换,因为它更自然,更整洁。然而,结果在不同情况下略有不同。不过,我从未想过settype()会很有希望。
答案 5 :(得分:0)
PHP中的类型转换与C中的类型转换一样:所需类型的名称在要转换的变量之前写在括号中。
http://php.net/manual/en/language.types.type-juggling.php#language.types.typecasting