为什么使用三元运算符来设置布尔变量


Why use the ternary operator to set a boolean variable?

我正在钻研facebook php api,我看到了以下函数。

public static function enableAppSecretProof($on = true)
{
  static::$useAppSecretProof = ($on ? true : false);
}

所以在我的理解,这将设置变量$useAppSecretProof为真,如果$on评估为真和假,如果它评估为假。

为什么要这样设置布尔变量而不是直接设置呢?这是用来铸造的吗?换句话说,任何作为参数传递给函数的值都将被转换为布尔值,这将是变量的值?

使用三元类型可以实现将形参隐式转换为正确的(bool)类型的效果。

更好的方法是:

static::$useAppSecretProof = (bool)$on;