Это нормально для конструкции, чтобы вернуть что-то? - PullRequest
1 голос
/ 25 июля 2011

Случай:

У меня есть класс формы, который обрабатывает формы HTML, очищает поля и проверяет правильность.

Я думаю о создании отдельных классов для различных полей формы, например:text / file / select / etc.

То, как я собираюсь использовать это, выглядит примерно так:

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

Однако кто-то здесь, на SO, однажды сказал мне, что конструкция классаникогда не должен ничего возвращать.

В приведенном выше случае он вернул бы поле формы.

Правильно ли, что __construct() никогда не должен ничего возвращать?

Ответы [ 4 ]

4 голосов
/ 25 июля 2011

Даже более того: все, что вы возвращаете, отбрасывается, а новый экземпляр вызываемого объекта - просто возвращение.

3 голосов
/ 25 июля 2011

Примерно так.

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

myForm расширит класс формы;

1 голос
/ 25 июля 2011

Конструктор класса не может возвращать ничего, кроме экземпляра этого класса, когда вы возвращаете что-то еще, это не может быть передано, но отбрасывается.В вашем коде кажется, что это то, что вы хотите получить, или я вас неправильно понял.

1 голос
/ 25 июля 2011

Невозможно для __construct() вернуть что-либо, потому что PHP возвращает новый экземпляр класса после вызова __construct ().

...