![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| мухр |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 11.8.2005 Репутация: нет Всего: нет |
Имеем класс с переменным имененем. Вызывается, скажем:
Каким образом можно сообщить ещё строку параметры классу, если мы имеем изначально параметры для передачи в виде массива? Это сообщение отредактировал(а) мухр - 19.12.2007, 12:36 |
|||
|
||||
| мухр |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 11.8.2005 Репутация: нет Всего: нет |
По типу как call_user_func_array(), но только для создаваемого объекта.
|
|||
|
||||
| Glip |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: 7 Всего: 18 |
|
|||
|
||||
| мухр |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 11.8.2005 Репутация: нет Всего: нет |
Не то. Вы влепляете массив, как он есть, а нужно в виде строки параметров.
То есть:
Понятно, что заведомо мы не знаем, сколько элементов будет в массиве $args. Это сообщение отредактировал(а) мухр - 19.12.2007, 13:24 |
|||
|
||||
| Glip |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: 7 Всего: 18 |
разбирайте в конструкторе класса или вот пример
|
|||
|
||||
| мухр |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 11.8.2005 Репутация: нет Всего: нет |
Ну этот пример, я смотрю, тот же самый. Нет, мне не нужно делать дополнительного разбора в конструкторе класса. Мне нужно то, что нужно.
---- Кто модератор? Переносите тему в раздел для экспертов срочно! Это сообщение отредактировал(а) мухр - 19.12.2007, 13:26 |
|||
|
||||
| Glip |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: 7 Всего: 18 |
хм, не дойдет что-то никак.
то вам нужно по типу call_user_func_array() то $class($param1, $param2, $param3) перечисляя каждый параметр. Добавлено через 3 минуты и 15 секунд я думаю что если класс создается со списком параметров, то у него существует и конструктор разбирающий этот список, то наверняка можно этот список передать и массивом. во всяком случае в php5 это вполне нормально работает. Добавлено через 6 минут и 54 секунды не понятно что вам мешает сделать
???? |
|||
|
||||
| мухр |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 11.8.2005 Репутация: нет Всего: нет |
Короче говоря, нашлось два решения:
http://ru.php.net/manual/ru/function.call-...-func-array.php
Первое через eval() - явно кривое и недоработанное. Но кто может объяснить, как второе работает? |
||||
|
|||||
| skyboy |
|
||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
угу. странно как-то. если же разбор в конструкторе не происходит - просто пихать строку-строкой. если нужна именно строка.
вопрос даже на вопрос не похож, потому как нет информации - что и для чего требуется. потому и нет ответов. привел бы пример ожидаемой функциональности. например, из
неясно, что надо. кроме того, что объект надо создавать не "$object= $class", а "$object= new $class" |
||||
|
|||||
| мухр |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 11.8.2005 Репутация: нет Всего: нет |
Пардон. Кривую не эту имел в виду. Вот эту:
|
|||
|
||||
| Glip |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: 7 Всего: 18 |
сдается мне что
эквивалентно
и в свою очередь даст тот же результат что и
Это сообщение отредактировал(а) Glip - 19.12.2007, 14:13 |
||||||||
|
|||||||||
| мухр |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 11.8.2005 Репутация: нет Всего: нет |
А вот и не даст. Подумайте сами, а лучше попробуйте протестить то и другое - сразу будет видна разница. Вообще данную проблему тут непросто объяснить словами - надо непосредственно испытывать. Кто задачу сможет сформулировать, чтобы было видно к чему данное решение? |
|||
|
||||
![]()
|
| Правила форума "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. |