PHP类型转换

时间:2012-08-08 02:59:08

标签: php types casting

我想知道将值从一种类型转换为另一种类型的最佳方法是什么。

我们应该使用哪种变体:

  1. intval($value);
  2. settype($value, 'int')
  3. (int)$value
  4. 所有这些都产生相同的结果。

6 个答案:

答案 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