intval
/ (int)
,floatval
/ (float)
等相同。
据我所知,既没有改变原始变量,也都返回了铸造版本。它们看起来功能相同。
是否有边缘情况存在差异?
任何理由使用一个而不是另一个?
最佳做法?
我假设(bool)
是"更好",因为我认为它可能比函数调用更快,内部可能只是做同样的事情。如果情况确实如此,这些boolval
/ intval
/ floatval
功能的重点是什么?
答案 0 :(得分:8)
在大多数情况下,它们是相同的,但存在细微差别:
intval
接受第二个参数($base
),其中强制转换语法array_map('intval', ..)
),这对于强制转换语法是不可能的答案 1 :(得分:1)
使用 boolval
和 (bool)
在以下情况下有区别:
如果你需要返回 bool 并且有两个整数:
return 1 & 1
- 返回 int
return (bool) 1 & 1
- 抛出错误(使用 strict_types)return (bool) (1 & 1)
- 返回布尔值return boolval(1 & 1)
- 返回布尔值