![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
что-то я затупил, как по ходу создать метод в классе
как создать метод в классе по переданным параметрам |
|||
|
||||
| oksale |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 17.6.2005 Где: Санкт-Петербург Репутация: 1 Всего: 9 |
Или:
--------------------
WBR, oksale |
||||
|
|||||
| pizzz |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 14.12.2008 Где: Омск Репутация: 6 Всего: 8 |
Я если честно о таком не слышал. Может быть Вы поведаете зачем Вам это, а я и сообщество постараемся предложить более красивый результат?
--------------------
Спасибо много, жмем кнопку репутация. Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады. |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
bars80080, тебе видимо магический метод __call() нужен, либо я тебя понял неправильно
|
|||
|
||||
| bars80080 |
|
||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
oksale, и что это вы мне написали?
pizzz, фишка в том, что есть в коде много всяких среднепостоянных данных. всякие массивы типа: 'Низкая','Обычная','Высокая' или 'Входящие документы', 'Исходящие документы', 'Внутренние документы', переменные имеющие важное значение и прочее часто проблема возникает, чтобы случайно не перезатереть, а придумывать длинющие названия в духе $arrayDocumentType надоедает можно было бы засунуть всё в некий массив и не париться, однако, вспомнив о классе, конечно задумался над его плюсами, т.е. автоматической обработкой к примеру, закидываем в него массив, а он заодно упорядочивает его, выкидывает лишние элементы и подсчитывает их количество. в итоге все данные как на ладони сразу, остаётся только обратиться конечно можно было бы:
Добавлено через 26 секунд
а как им пользоваться? |
||||
|
|||||
| enof |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
del
Это сообщение отредактировал(а) enof - 28.1.2009, 13:51 |
|||
|
||||
| Sentox |
|
|||
|
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
http://phpclub.ru/faq/PHP5/Overload http://ua.php.net/oop5.overloading Это сообщение отредактировал(а) Sentox - 28.1.2009, 14:52 |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
блин, по голове хочется стукнуть копипастчикам
за ссылки спасибо, но перебрал с десяток, один и тот же скопипасченный друг у друга невразумительный пример вот здесь в комментариях человек нормально объясняет: http://www.softtime.ru/forum/read.php?id_f...;id_theme=21195 итог выглядет примерно так:
тогда последовательный вопрос: как оно к ресурсам и прочая, не является ли это чем-нибудь страшным для сервера (скажем накидать 20-50 новых свойств)? |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
bars80080, советую сформулировать задачу в более конкретном виде, потому, как не совсем ясно, какие именно цели вы преследуете.
20-50, 100-500 свойств, не столь важно. Важнее не хранить эти данные постоянно, если они вам уже не нужны. Т.е. использовать их в пределах видимости того функционала, который непосредственно в этих данных нуждается, а при необходимости - тереть из глобального массива. Но, не зная задачи, точно не могу сказать какой подход Вам больше всего подойдет. P.S. Возможно, что-то в этом роде вам пригодится. Это сообщение отредактировал(а) IZ@TOP - 28.1.2009, 17:25 -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
ну как цели?
фишка в том, что я говорю о своего рода модуле. обычно это система какого-то документооброта. пользователь что-то вносит, кто-то другой смотрит, корректирует записи. т.е. это не сайт в привычном понимании этого слова. делая третий подобный модуль, конечно начинаешь подмечать общие черты и хочется оптимизировать до создания универсальной системы. появляются классы основных событий и прочая среди них есть стандартный набор разнородных элементов. это массивы падающих списков, заголовки, какие-то другие перечисления постоянно встречающиеся при использовании этого модуля, но встречающиеся только в нём. далее какие-то параметры, которые хотелось бы настраивать из профиля пользователя, как-то количество строчек в таблицах или цветовые решения скина в итоге это всё это находится именно разнородным мессивом, пока ещё в начале скрипта. массивы скажем в виде $arrayListSomeValues, что-то точно постоянное задано в виде констант LIMIT, которые инициализируются в начале работы, имена таблиц. может ещё какие-то данные. понятное дело, что это всё легко заносится в какой-нибудь include('variableConf.php'); может иметь такой же вид, как реплики для языка: $lang['yes'] = 'да'; $lang['no'] = 'нет'; но тут возникает мысль запихать всё это в класс по нескольким причинам: 1. одновременный доступ. к примеру, теперь нам для построения самой страницы, которая тоже строится из класса расписывающего логику этой страницы, не требуется передавать кучу внешних параметров через аргументы методов или global в них же. достаточно объявить всего одно имя класса, и он станет виден 2. можно без помех пользоваться разными именами переменными не затерёшь какую-то из них, которая может использоваться ранее и следовать через весь скрипт. что весьма актуально при возвращении к проету спустя полгода 3. обратное от п.1 можно добавить в класс переменную без return или global и она станет видна всему последующему скрипту. 4. одно из важнейших свойств - автоматизация и обработка. на примере того же массива. добавляем массив значений, а там автоматом выкидываютс дублирующие записи, может упорядочиваются по некоторому критерию и появляются готовые характеристики, которые не придётся более вычислять как-то так единственная причина почему хочется не $P->perem['param'][5]; а $P->param[5] - просто удобней потому и вопрос, не страшно ли это? |
|||
|
||||
| Sentox |
|
|||
|
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
а массив в классе получается виден из внешней программы.
Может класс Collection http://www.computerra.ru/softerra/program/10311/ |
|||
|
||||
| awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: 21 Всего: 31 |
//offtop Прошу кого нибудь поставить плюсик посту товарища IZ@TOP`а. Листал форум, случайно кликнул на минус
Это сообщение отредактировал(а) awers - 28.1.2009, 23:34 |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
awers, так оно не защитывается, если комментарий не введёшь и дальше кнопку отправить не нажмёшь
|
|||
|
||||
| awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: 21 Всего: 31 |
на посте я имел в виду ) а то мысль хорошая, а минус сверху. не порядок
|
|||
|
||||
| krundetz |
|
||||||||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
почти также как с __set только вызов будет не
а
и соответственно тем что при __set у тебя приходит один параметр, а при __call приходит массив аргументов если не уловил разницу пиши завтра вечером напишу простенький пример, точнее уже сегодне и объясни пожалуйста зачем ты здесь:
делаешь явный вызов метода __set, когда весь его смысл в том что он вызывается неявно, тоесть в твоем случае так:
а также интересно зачем ты пытаешься присвоит переменной $param значение возврашаемое методом, при том что он у тебя ничего не возвращает? Это сообщение отредактировал(а) krundetz - 29.1.2009, 03:21 |
||||||||
|
|||||||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |