Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Область видимости переменной? |
Автор: Kotakota 7.4.2011, 13:28 | ||||
Привет. Есть код:
Почему кода условие выполнилось и в $this->matches появился результат, я не могу использовать эту переменную в других местах класса. Она всегда пустая! А если сделать так:
то в переменной $this->matches2 сохраняется результат и в дальнейшем эту переменную можно использовать! Если получилось присвоить, то значит и в $this->matches пока она была в цикле, был результат! А если вызвать $this->matches в любом другом месте вне цикла, она всегда пустая.... Почему так происходит? |
Автор: bars80080 7.4.2011, 13:47 |
во-первых, не видно, что цикл находится в методе во-вторых, точно уверены, что сразу после цикла в переменной что-то есть? в-третьих, можно предположить, что $this->matches попадая во внутреннюю область функции становится обычной переменной. то есть в пределах функции используется что-то вроде ${'this->matches'} , а не непосредственно свойство класса. поэтому значение и не оказывается в нём |
Автор: Kotakota 7.4.2011, 13:51 | ||||
1. Исправил. 2. Пока переменная в цикле, есть ее значение. Если вызвать после цикла, то нет. Пустое значение! 3. ![]() Добавлено @ 13:54
Тогда почему $this->matches2 попадая в метод не становится обычной переменной? |
Автор: bars80080 7.4.2011, 13:55 |
попробуй для первого варианта ещё указать public для переменной, и посмотри результат, будет ли сохраняться значение |
Автор: solenko 7.4.2011, 14:53 | ||
Все проще. попробуйте не перетирать $this->matches на следующей итерации цикла )
|
Автор: Kotakota 12.4.2011, 13:16 | ||||
Да, забыл поставить break; Всем спасибо за ответы! |