0

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

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

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

3 回答 3

1

由于您的变量是一个对象,它将始终被视为true- 即条件将始终通过,除非构造TestClass函数出于某种原因不会实例化对象。您可以查看类型判断页面以了解 PHP 如何处理类型转换(在这种情况下,转换为布尔类型)

于 2013-08-22T14:02:09.233 回答
0

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

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

于 2013-08-22T14:08:24.560 回答
0

它告诉你,如果你的$obj存在

于 2013-08-22T14:03:42.523 回答