Покинул форум
Сообщений всего: 99
Дата рег-ции: Нояб. 2009 Откуда: Казахстан
Помог: 1 раз(а)
Здравствуйте, уважаемые пользователи. У меня такой вопрос.
Есть класс, с некими методами, мне нужно заставить работать их и как Static и как обычный метод.
Следует учесть, что в методе могут быть обращения как к static свойствам так и к не статик.
----- "Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог
Champion
Отправлено: 19 Июля, 2010 - 19:58:39
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
Статичные методы и не статичные ведут себя по-разному. Не может метод одновременно быть и так, и так. Ты ведь не можешь идти одновременно налево и направо.
Joo
Отправлено: 19 Июля, 2010 - 20:08:35
Гость
Покинул форум
Сообщений всего: 99
Дата рег-ции: Нояб. 2009 Откуда: Казахстан
Помог: 1 раз(а)
Champion пишет:
Статичные методы и не статичные ведут себя по-разному. Не может метод одновременно быть и так, и так. Ты ведь не можешь идти одновременно налево и направо.
Я могу идти или налево или направо, это я решаю и остаюсь я самим собой (пока еще не раздвоился), куда бы я не шел. Вот я и хочу заставить метод работать или так, или так, выбирать поведение на лету.
Я знаю, что вызвать функцию можно и так и так, но хотелось бы определить каким образом функция вызвана, как статик или нет, и от этого как раз определить её поведение.
У меня есть класс. В некоторых местах нужны, отдельные экземпляры этого класса, а в некоторых нужен глобальный экземпляр.
Конечно можно где то объявить переменную, и там где надо просто написать global $varFoo; а можно и прям внутри класса статическую переменную данного класса сделать, static $varFoo; и потом к ней обращаться как foo::$varFoo->bar(); Можно. Но задача стоит в другом, нужно чтобы был static и not static метод с одним именем и обращение происходило как foo::bar() или varFoo->bar()
Покинул форум
Сообщений всего: 43
Дата рег-ции: Март 2010
Помог: 0 раз(а)
Статические члены класса
Определения классов могут теперь включить статических членов класса (свойства и методы), доступ к которым осуществляется через класс. Общее использование статических членов показано на примере:
Статические методы
Вы можете теперь определить методы как статические, разрешая им быть вызванными вне контекста объекта. Статические методы не определяются через переменную $this, поскольку они не должны быть ограничены определенным объектом.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.