ООП и php | SEclub.org
ООП и php
Все новые
Тема закрыта для обсуждения.
Всего сообщений: 11
*
not detected
ts 27 июл 2008 в 06:58
ООП и php
Объекто Ориентированное Программирование www.php.su/learnphp/phpoo/ .
не могу понять как реализовать ->
есть некий класс Main, в нем происходит описание его свойств и методов. на основе его свойств создается новый объект другого класса. Каг сделать так чтоб объект класса Main содержал не только свои, но и новые свойства и методы?
*
Xlr
27 июл 2008 в 07:31
юзай наследование
*
not detected
ts 27 июл 2008 в 08:51
Xlr, дык не получается :( . Может я чего не правильно понимаю/делаю. Вот примерный код ->
*
not detected
ts 27 июл 2008 в 08:52
<?php
class Main{
protected "var=array();
protected "error;
function __construct("mode){
"this->var["index1"]="value1";
"this->var["index2"]="value2";
switch((int)"mode){
case 1:
return new Class1();
break;
case 2:
return new Class2();
break;
default: die ("параметры неверны");
}
}
public function get_error(){
return "this->error;
}
protected function set_error("err_msg){
return "this->error="err_msg;
}
}
class Class2 extends Main{
private "param;
function __construct(){
}
public function get_param(){
echo "this->var["index2"]);
}
}
-------
"obj=new Main("2");
"obj->get_param();
?> // В итоге ошибка, неопределеный метод.
*
not detected
ts 27 июл 2008 в 08:56
Класс Main это основной класс, именно через него я хочу организовать все действия. Этот класс должен сам создавать новые объекты в зависимости от того какой "mode был указан.
*
ImIeee
27 июл 2008 в 16:39
not detected, я сам не оч. хорошо разбираюсь в ооп, но тут класс Class2 наследует Main, а не наоборот. Поэтому метод содержится в Class2, а не в Main. A ты создаешь объект класса Main...
27 июл 2008 в 16:41 / ImIeee (1)
*
ImIeee
27 июл 2008 в 17:06
not detected, и вообще, зачем лишний раз создавать класс, если он итак наследуется...
*
not detected
ts 27 июл 2008 в 17:52
!eee, а какая разница кто у кого наследует? Ведь в результате все равно должен получится объект содержащий свойства/методы обоих классов? Иль не так?
*
not detected
ts 27 июл 2008 в 17:54
Мне нужно создать именно объект класса Main, и чтоб через него был доступ к объектам которые он создает. Думаю так понятно разъяснил :neznaet: // в принципе мысль есть. Делать не return new Class2(); а "this->a =new Class2(); . И тогда можно будет обращаться к методу так "obj->a->get_param(); . Думаю должно работать. Но хочется без этой заморочки а-> .
27 июл 2008 в 17:59 / not detected (1)
*
ImIeee
28 июл 2008 в 05:55
not detected, в тех постах я бред какой-то написал. :-( Попробуй "obj=new Class2; вместо return.
*
ImIeee
28 июл 2008 в 08:45
not detected, а еще можно вставить в код "obj="obj->__construct(2)
28 июл 2008 в 08:46 / ImIeee (1)
Скачать тему
Для полноценного использования разделов сайта войдите или зарегистрируйтесь.
Создание сайтов и программирование | Компьютеры | Форум | Главная
18+ © Seclub.org 2003-2024