<?PHP
class DBFactory {
function __construct(){
return 'Need to echo';
}
}
$db = new DBFactory;
echo $db;
?>
不起作用:(
解决方法:
我不明白,如果您尝试在构造函数上返回值,那么您为什么要考虑OOP.
OOP的全部目的是让对象执行许多任务,如果您想返回字符串,数组,资源,那么OOP不适合您.
__constructors用于在对象初始化的前期初始化代码,witch可让您执行代码以在用户使用前准备对象.
如果您想在对象上使用__toString,那么请明智地使用它,它的主要目的是对象中的可读性,而不是存储等,主要用于错误调试.
当您使用new关键字创建对象时,PHP的处理器会创建一个对象并将其分配给内存,然后它会运行该构造,但是在构造函数达到其终点之后,该构造将不保存任何返回的值,该对象的链接位于内存将返回给您要求的变量.因此,从理论上讲,您可以将$db-> __ construct()仍然作为方法运行,但只能在完全创建对象之后.
class DBFactory
{
function whatAmI()
{
return 'I am DBFactory';
}
}
$MyOBJECT = new DBFactory;
echo $MyOBJECT->whatAmI();
这确实很愚蠢,但是如您所愿,
class DBFactory{
function __construct()
{
return 'Need to echo';
}
}
$db = new DBFactory();
echo $db->__construct();