我注意到 PHP 类中的构造函数在从类外部隐式调用时不能返回对象以外的值:
class A
{
function __construct ()
{
return FALSE;
}
function aFunctionInside ()
{
$aVar = $this->__construct ();
echo gettype($aVar);
}
}
$A = new A;
$A->aFunctionInside (); // boolean
echo gettype ($A); //object
这种行为在任何情况下都有帮助吗?
创建对象时隐式调用构造函数(使用 new
)。但是,在这种情况下不使用其返回值,并且与正在创建的对象无关。
创建对象的不是构造函数,因为即使没有构造函数,无论如何都会创建一个对象。更重要的是,当构造函数运行时,对象已经存在。
构造函数不需要返回值。根据手册,它没有返回类型:
构造 函数
void __construct ([ mixed $args = "" [, $... ]] )
当然,您可以自由地返回一些东西并在显式调用该函数时使用它,就像任何其他函数一样,但不要指望该调用会创建类的另一个实例化。为此,您需要使用new
语法。
在对象创建期间隐式调用返回值时,返回值不起作用:在这种情况下,将忽略返回值。