![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| 31416 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 3.5.2006 Репутация: нет Всего: нет |
есть статичный класс с свойствами
class::prop1 class::prop2 class::prop3 ... class::propN есть массив array( prop1=>'val1' prop2=>'val1' prop3=>'val1' .. propN=>'valN' ) как сделать чтобы по совпадении ключей массива с соответствующими свойствами - свойствам присваивались соответствующие элементы массива? --------------------
Мой блог |
|||
|
||||
| IAmEternaL |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 8.10.2007 Где: Киев, Украина Репутация: нет Всего: нет |
ну вот решение:
при чем, замечу, присвоение значения (не null) статическим пропертям класса обязательно! иначе isset выдаст false Это сообщение отредактировал(а) IAmEternaL - 10.10.2007, 15:40 |
|||
|
||||
| IAmEternaL |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 8.10.2007 Где: Киев, Украина Репутация: нет Всего: нет |
ну так что - помогло? кстати я подумал о каком-то решении проблемы инициализации пропертей при обьявлении в классе...
возможно правильным решением было бы задать константу типа define('CLASSFOO_DEFAULT_VALUE', 'ABCD'); где ABCD - значение, которые стопудоф не будет использоваться для этих переменных... может даже md5 какой-то типа так:
а вообще я бы на твоем месте использовал бы синглтон с переопределенным getter'ом, что намного проще (имха)
при чем ф-ция setProperties используется для первичной инициализации пропертей (можно сделать и просто добавления массива - array_merge к твоим услугам) + этой реализации естественно и в том, что обращение по типу как на строке 42 возможно можно и как на 43 - это типа доступ через динамически генерируемое имя, может пригодится (во всяких там циклах) |
||||
|
|||||
| 31416 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 3.5.2006 Репутация: нет Всего: нет |
ага помогло) спасибо за исчерпывающий ответ)
синглетон конечно тут лучше всего - но мне нужно было проиницировать уже написанный класс - а проперти там были завязаны на отдельные его переменные... я только не понял смысл зачем создавать константу и присваивать ее пропертям в начале? что ты тут имел ввиду - для чего это поясни плиз? и еще все хотел спросить но не знал у кого) - public static function & getInstance() для чего используется символ & в этой записи?! --------------------
Мой блог |
|||
|
||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 11 Всего: 146 |
Пережитки прошлого. Это символ говорит о том, что объект будет передаваться(в данном возвращаться) по ссылке, но в PHP 5 объекты и так возвращаются по ссылке, т.ч. в данном случае амперсанд совершенно не нужен. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Для профи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |