php中的$ bar = boolval($ foo)和$ bar =(bool)$ foo有什么区别?

Cod*_*key 6 php

对于intval/ (int),floatval/ (float)等也是如此

据我所知,既没有改变原始变量,也都返回了铸造版本.它们看起来功能相同.

是否有边缘情况存在差异?

任何理由使用一个而不是另一个?

最佳实践?

我认为这(bool)是"更好",因为我认为它可能比函数调用更快,内部可能只是做同样的事情.如果是这种情况,这些boolval/ intval/ floatval功能有什么意义?

dec*_*eze 10

在大多数情况下,它们是相同的,但存在细微差别:

  • 一些函数,比如intval接受第二个参数($base),而演员语法没有
  • 函数调用有更多的开销
  • 函数可以用作回调(例如array_map('intval', ..)),这对于强制转换语法是不可能的