Произвольное указание свойств объекту класса php. Вопрос!

программирование php ООП

Начал изучать ООП, в качестве эксперимента решил создать класс, который генерирует input:

class Form
{
public function CreateInput($class="", $type="", $name="", $value="")
{
print "<input class=\"".$class."\" type=\"".$type."\" name=\"".$name."\" value=\"".$value."\">";
}
}

$obj = new Form();

$obj -> CreateInput("cl1", "text","test","ТЕКСТ");

В итоге получил:
<input class="cl1" type="text" name="test" value="ТЕКСТ">

Можно ли реализовать класс таким образом, чтобы можно было назначать свойства объекту класса явно, в порядке, независящем от порядка следования аргументов в методе CreateInput() ?
Например:
$obj -> CreateInput($obj->value="Текст",$obj->name="test",$obj->type="text"); (класс стилевой специально не указал), и получить что нибудь в роде:
<input type="text" name="test" value="ТЕКСТ">

Спасибо!

Примечание:
SperoMeliora, если я тебя правильно понял, то должно получиться нечто похожее на следующее:

<?php

class Form
{
function __construct() {
$this -> type = "";
$this -> name = "";
$this -> value = "";
}

public function CreateInput()
{
print "<input type=\"".$this -> type."\" name=\"".$this -> name."\" value=\"".$this -> value."\">";
}
}

$obj = new Form();
$obj -> CreateInput($obj -> type = "text", $obj -> value = "ТЕКСТ");

?>

На выходе получаем:
<input type="text" name="" value="ТЕКСТ">

Отчасти то, что мне нужно) А можно ли встроенными средствами контролировать, неуказанные атрибуты? Т.е. скажем если значение атрибута name не указано при обращении то не выводить его в принципе? Например для моего случая получить вывод:
<input type="text" value="ТЕКСТ">

Или же потребуются типичные ухищрения с помощью конструкций if else ?
Ответы:
ммм ты хочешь не свойства указывать объекту, а передавать аргументы методу в произвольном порядке.
Никак не пойму, зачем тебе обязательно атрибуты передавать в разных параметрах. Почему нельзя сделать js-like
$obj -> CreateInput($obj->value="Текст",$obj->name="test",$obj->type="text") бессмысленная конструкция. Атрибуты объекта и так задаются явно оператором $obj->value="Текст", а в каком порядке эти операторы расставить, дело вкуса.
Поэтому, если свойства формы ты уже хранишь в полях объекта, зачем их передавать в метод, который html разметку собирает? Разметка отдельно, конструктор объекта отдельно должны быть.  


10 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.