Всем привет! Подскажите! Я как бы знаю!ну терзают сомнения! упрощенный код! Код (PHP): function foo($id, $class) { $class= ucfirst($class); if (class_exists($class)) { return $obj = new $class($id,$class); } else { exit("no such class $class"); } } $objstat = foo($id,$mode); хотелось бы ф-ю перетащить в классы! какие плюсы и минусы решений! спасибо!
В русском языке! Кроме восклицательных знаков, есть точки! Оберни в статический класс и вообще ничего не нужно будет в ней менять.
То есть лучший вариант : абстрактный код! Код (PHP): abstract class A{ __construct($id, $class){ ///////////some code } $many_some_vars; public function some_many_func(){ /////////// } ///////нужный участок static function foo($id, $class) { $class= ucfirst($class); if (class_exists($class)) { return $obj = new $class($id,$class); } else { exit("no such class $class"); } } } class B,C,D extends A { parent:: __construct(); } $obj = A::foo($id, $class); черт внимательно прочитал ваш пост. статический класс? я думал об том что бі сделать синглтон в катором есть статический метод! ну мне не хочеться создавать еще 1 не связаній класс!
А ты не городи по одному классу на метод. Ты сделай класс Library, и туда подобный инструментарий выноси, контекстно-независимый.
ФАК!!!!!! спасибо!!!!! За что? да за то что у меня есть класс где вся статика и тому подобное! НУ Я ПРО НЕГО ТУПО ЗАБЫЛ!!!!!!!!!!!!!!!!!!!!!!!! упоролся видать не кисло! ) ну раз бредни полились с моего мозга, крайний вопрос! если всё таки создать статический метод в (абстрактном или обычным (есть разница????))главном классе от которого наследуются другие а он сам не имеет обьекта! плохо? и такой маленький вопросик! 8) как себя поведёт деструктор в абстрактном классе!(зачем вы спросите я изрёк этот бред!) -отвечаю) есть часть системы МОДЕЛЬНОГО ХАРАКТЕРА (по типу MVC патерна) которая отдает во вьюшку данные! то есть! //////some code $obj = A::foo($id, $class); $obj->chkAccess(); $obj->iWantBeRich(); ///////again some code $1= $obj->get1(); $2= $obj->get2(); $3= $obj->get3(); то есть во вьюхе! forech($1) echo <td>.$1; итд , короче генерации хтмл-я! Каким образом можно решить подобную задачу! Логика типа $1= $obj->get1(); во вьюхе не должно біть! только $1 ХОЧЕТЬСЯ убрать из конца файла $1= $obj->get1(); и вінести в логику! $obj->1; и $obj-get1(); во вьюшке тоже не подходит! карті таро еще не доставал! по єтому только деструктор пришел на ум! ну через него тоже как то не то! писать в нем $1= $obj->get1(); $2= $obj->get2(); $3= $obj->get3(); потом всё это ретурнить массивом! во вьюхе потом форычить! (это конечно не аТский труд,но всё таки!) + вьюхи бывает настолько сложны и запутаны и их настолько много! что тут задача сразу ставиться с учетом совместимости! по этому логичний и по тз получить набор переменых нужного названия!хух бред!
никак. Ты не сможешь создать экземпляр абстрактного класса, поэтому его деструктор не будет вызван. Только если создашь экземпляры подклассов. Код (Text): class B,C,D extends A { Что это за синтаксис? Первый раз вижу
да ты прав! (просто тут,это вечер,после работы,наверное с пивком да еще и под музычку) , типо отдыхаю! абстракция не имеет реализации! это верно. вопрос именно в том ,что я объявил деструктор в абстракции, потом создал обьект класса ПОТОМКА(в нем нету деструктора)! который наследует абстрактный класс! тоесть деструктор не вызовется!? а как же схема если нету метода в классе смотри выше! а конструктор тоже сработает? а поповоду синтаксиса, я там в начале указал "языковую" конструкцию "АБСТРАКТНЫЙ КОД" 8)))))))) тоесть class B,C,D extends A { это! class B extends A { class extends A { а что-то скажешь по поводу других заметок! а самое главное - всё таки создать статический метод в (абстрактном или обычным (есть разница????))главном классе от которого наследуются другие а он сам не имеет обьекта! плохо?будет верно работать? Я уже сам запутался! пишите , предлагайте,коментируйте! вопрос 1.создать статический метод в (абстрактном или обычным (есть разница?))главном классе от которого наследуются другие, а он сам не имеет объекта!(не могу понять логику! статический метод возвращает объект класса потомка который наследуется от этого же класса. смущает! не будет ли КАКИХ ЛИБО КОЛИЗИЙ для объектов этого дерева! где есть например (проверки доступа,получения времени!)) 2. вызовется конструктор и деструктор абстрактного класса при создание объекта дочернего класса ГДЕ НЕ УКАЗАН метод, указан (тут вызовется) , и перегружен метод(parrent::method). FELL sry for this - ! and this - !!!!!!!!! 3.есть ли на слуху решения задачи
Слушай, ну хватит использовать восклицательный знак вместо запятых и вопросительного, а? Чего ты как будто 12-летняя пубертантная девочка в аське пишешь? Можешь же нормально, я же знаю.