![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| sugee |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 423 Регистрация: 12.6.2005 Репутация: нет Всего: 4 |
Начал копать ООП в PHP5. Сразу возникли вопросы с модификаторами доступа.
Сейчас вопрос конкретно такой: как вызвать private-метод? Я понял что вызываться он должен внутри своего класса, но почему-то попытка вызвать сам этот класс расценивается как покушение на приватный метод. Вот простенький класс который должен выводить значение свойства.
Я не пытался вызывать метод __toString() из вне, я просто вызвал класс, а сам метод вызывается внутри класса, но все равно получается ошибка. Чего то я тут не догоняю Добавлено @ 20:54 Только не говорите что нужно заменить private на public. Меня интересует именно приватный метод - как его вызвать. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Попробуй вот так:
|
|||
|
||||
| Illuminaty |
|
||||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: нет Всего: 56 |
|
||||
|
|||||
| sugee |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 423 Регистрация: 12.6.2005 Репутация: нет Всего: 4 |
Mal Hack
Неа, так тоже не получается. Добавлено @ 21:13 И как же мне тогда вызвать метод __toString() если мне все-таки вздумалось сделать его приватным? Я просто хочу понять как вообще пользоваться приватными методами и свойствами, как их вызывать Это сообщение отредактировал(а) sugee - 28.1.2006, 21:07 |
|||
|
||||
| Irokez |
|
|||
![]() индеец ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: нет Всего: 53 |
приватные методы используются только внутри самого класса, если ты делаешь метод приватным - значит ты не хочешь, чтобы его можно было использовать извне, иначе - оставляешь его открытым, т.е. публичным. В твоем примере делать метод __toString() приватным глупо, т.к. это магический метод и вызывается при попытке обратить класс в строку (конечно есть и смысл делать его приватным если класс не нужно приводить к строке ни при каком случае), поэтому оставь его public. |
|||
|
||||
| sugee |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 423 Регистрация: 12.6.2005 Репутация: нет Всего: 4 |
Irokez, мой пример не совсем удачный, я просто хочу для начала понять как вызываются private-методы, а потом уже разобраться для чего их можно использовать.
Покажите кто нить простой пример вызова такого метода! |
|||
|
||||
| Irokez |
|
|||
![]() индеец ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: нет Всего: 53 |
извне - никак, изнутри класса - как и другие методы |
|||
|
||||
| Illuminaty |
|
|||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: нет Всего: 56 |
|
|||
|
||||
| sugee |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 423 Регистрация: 12.6.2005 Репутация: нет Всего: 4 |
вот теперь действительно нормально. Метод __toString() должен быть public. Теперь открытый метод __toString() вызывает приватный метод t__toString(). Можно и свойство myNeVsem сделать приватным, только тогда его уже нельзя будет изменить. Добавлено @ 00:03
|
||||||
|
|||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Extensions | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |