我注意到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
这种行为在任何情况下都有帮助吗?
答案 0 :(得分:2)
在创建对象时使用new
)隐式调用构造函数。但是,在这种情况下不使用其返回值,并且与正在创建的对象无关。
创建对象的构造函数不是,因为即使没有一个,也会创建一个对象。还有什么,当构造函数运行时,对象已经存在。
构造函数不期望返回值。根据{{3}},它没有返回类型:
构造强>
void __construct ([ mixed $args = "" [, $... ]] )
当然,您可以自由地返回某些内容并在明确调用该函数时使用它,就像使用任何其他函数一样,但不要期望该调用创建您的类的另一个实例。为此,您需要使用new
语法。
当在对象创建期间隐式调用返回值时,返回值不起作用:在这种情况下忽略返回值。