![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
Как правильно обратиться к статической функцие класса (не создавая его объекта) если название класса находится в переменной?
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
В документации есть: http://ru2.php.net/manual/en/language.oop5.static.php
|
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
Mal Hack,
Именно так и сделал. Но Zend по какой то причине на меня очень круто ругается: "Syntax Error"... |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
ShurikA, а версия PHP у вас какая? Скорее всего 4.
Да и ошибку, хотелось бы увидеть. |
|||
|
||||
| Diesel Draft |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
mixed call_user_func (string function_name [, mixed parameter [, mixed ...]])
Вызывает определённую пользователем функцию, заданную параметром function_name. Выглядит так:
Это сообщение отредактировал(а) Diesel Draft - 14.8.2007, 15:50 |
|||
|
||||
| sTa1kEr |
|
||||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 11 Всего: 146 |
К сожалению, так можно можно только создавать новые объекты с переменным именем класса. Diesel Draft, да, вы правы, только следовало бы добавить, что для вызова именно статического метода следует в качестве первого параметра передавать массив из двух элементов: имя класса и имя метода
Так же можно использовать Reflection. В данном случае преимущество рефлекшена в том, что можно перед вызовом анонимного метода сделать проверку на ошибку
Это сообщение отредактировал(а) sTa1kEr - 14.8.2007, 17:23 |
||||
|
|||||
| Diesel Draft |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
Думаю тема решена. Доставляйте плючики и закрывайте |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
||||
|
||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 11 Всего: 146 |
http://bugs.php.net/bug.php?id=33463 Добавлено через 22 секунды Status: Wont fix |
|||
|
||||
| Diesel Draft |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
sTa1kEr, Я вот заметил за тобой страдную вещь: ты что мануал на память изучаешь?
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
sTa1kEr, понял, спасибо.
Diesel Draft, не флейми, а, слющай.. |
|||
|
||||
| Diesel Draft |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
Mal Hack, маленький можно
|
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
в продолжение:
Если у меня в функцию принемается массив с аргументами. Каким образом мне создать объект определённого класса если он долже создаться следующим образом:
колличество аргументов не определённое. Это сообщение отредактировал(а) ShurikA - 16.8.2007, 22:20 |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
А какая разница сколько параметров?
Вообще, это не хорошо, в ПХП... Знак $ надо убрать перед именем класса. Параметров передаешь сколко хочешь. В конструкторе юзаешь funt_get_args или что-то в этом роде. |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
Разница в том что это не должно быть "hardcoded". Создание любого обьекта осуществляется одной и той же функцией (Factory::createInstance(...,...);). По этому и аргументы должны туда передаваться динамическим способом. Я пока сделал так:
пока не знаю если это работает... Не хорошо что??? ты наверное имел в виду: '&'. Почему обрать? Тут уже понятно. |
|||
|
||||
![]()
|
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Для профи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |