将对象传递给if时究竟发生了什么,如下所示:
class TestClass {
...
}
$obj = new TestClass();
if($obj) { // what exactly is going on here ?
...
}
答案 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