Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Забавная особеность свойств классов
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Вчера с удивлением обнаружил что некоторые фишки работают не совсем так как хотелось бы, вроде бы и правельно, но не так как нужно.
1) анонимная функция не может быть записана в свойство обьекта.
Выовет метод класса, хотя хотелось бы вызвать свойство с функцией. PHP не вызывает свойство даже если метода не существует, если удалить метод то просто получим фатал.
2) Невозможно вызвать обьект как функцию (метод __invoke) если этот обьект записан в свойство другого обьекта.
Снова вызывается либо метод класса А либо фатал.
Вывод: вот так вот некоторые новые фишки накладываются на другие и получиется не то что хотелось. И для разработчиков php из этой ситуации выхода то нет, пробовать вызываь свойство если нет метода нельзя ибо добавили метод __call который должен перехватывать такие вызовы.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Мелкий
Отправлено: 02 Сентября, 2012 - 17:45:59
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
OrmaJever пишет:
анонимная функция не может быть записана в свойство обьекта.
Записывается. Но вот вызывается не так, как это может показаться сначала.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.