php - 将对象评估为 bool 值

标签 php class object evaluation

考虑以下几点:

class MyClass
{
  private $var1 = "apple";
  private $var2 = "orange";
}

$obj = new MyClass();

if($obj) { 
  // do this
}
else {
  // do that
}

PHP 评估我的对象为真,因为它有成员变量。这个逻辑能以某种方式被覆盖吗?换句话说,当我的类对象被视为 bool 值时,我能否控制其计算结果?

最佳答案

PHP evaluates my object to true because it has member variables.

这是不正确的。 PHP 实际上将 $obj 评估为 true 因为它包含一个对象。它与对象的内容无关。您可以通过从类定义中删除成员来验证这一点,选择 if/else 的哪个分支不会有任何区别。

如果 PHP 持有对对象的引用,则无法使 PHP 将变量计算为 false。您必须为变量分配一些“虚假的”内容,其中包括以下值:

null
array()
""
false
0

参见 Converting to boolean从 PHP 文档中获取在转换为 bool 值时被视为 false 的所有值的列表。

关于php - 将对象评估为 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5572849/

相关文章:

php - 为什么 jQuery 使用 UTF-16 进行 POSTing?

java - Class.forName 调用后如何释放内存?

c++ - 重载运算符时 C++ 代码出错

Java 对象复制最佳选择?

javascript - 如何使用 AJAX 将 DropDown 保存到数据库中

php - 无法执行插入查询?

php - mysql where语句没有显示正确的结果

Java构造函数在不同类中的使用

python - 如何创建 "individual"对象

javascript - 将此(对象)传递到对象方法之一嵌套方法