PHP - 传递给if条件的对象

时间:2013-08-22 13:55:53

标签: php object type-conversion

将对象传递给if时究竟发生了什么,如下所示:

class TestClass {
  ...
}
$obj = new TestClass();

if($obj) { // what exactly is going on here ?
  ...
}

3 个答案:

答案 0 :(得分:1)

由于您的变量是一个对象,因此始终将其视为true - 即条件将始终通过,除非TestClass的构造函数由于某种原因不会实例化对象。你可以看到type-judging page来看看PHP如何处理类型转换(在这种情况下,转换为布尔类型)

答案 1 :(得分:0)

它会告诉您,$obj是否存在

答案 2 :(得分:0)

php会将您的表达式转换为布尔值。因为这是一个现有的对象,所以它将被转换为TRUE(从Php 5+开始,在php4中,这将被转换为FALSE - 我认为):

http://www.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting