构造返回某些东西是否可以?

时间:2011-07-25 19:32:25

标签: php class-design

案例:

我有一个表单类,它处理HTML表单,清理字段和验证。

我正在考虑为不同的表单字段创建单独的类,例如:text / file / select / etc.

我正在考虑使用它的方式类似于以下内容:

$form = new Form();
$form->element['fieldname'] = new HtmlTextField('length'=>3);

然而,有人在SO上告诉我,一个类构造永远不会返回任何东西。

在上述情况下,它将返回表单字段。

__construct()永远不会返回任何内容是否正确?

4 个答案:

答案 0 :(得分:4)

更重要的是:无论你返回什么都会被丢弃,而被调用对象的新实例只是返回。

答案 1 :(得分:3)

这样的事情怎么样。

$form = new myForm();
$form->element['fieldname'] = $form->createTextField('length'=>3);

myForm将扩展Form Class;

答案 2 :(得分:1)

__construct()不可能返回任何内容,因为PHP在调用__construct()之后返回该类的新实例。

答案 3 :(得分:1)

当您返回其他内容时,类的构造函数不能返回除此类实例之外的任何内容,这不能传递但会被丢弃。 在你的代码中,似乎这就是你想要的东西,或者我误解了你。