|
Модератор
2935 / 1794 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
|
||||||
Область видимости переменной25.10.2014, 20:53. Показов 1661. Ответов 13
Метки нет (Все метки)
Запутался совсем.
Есть переменная, которая внутри функции не отображается.
0
|
||||||
| 25.10.2014, 20:53 | |
|
Ответы с готовыми решениями:
13
Область видимости переменной Область видимости переменной Как вывести значение переменной из тело if? (область видимости) |
|
> /dev/null
286 / 119 / 86
Регистрация: 14.05.2014
Сообщений: 767
|
||||||
| 25.10.2014, 21:08 | ||||||
|
Появляются какие либо ошибки?
Не проше ли будет предать в функцию это значение?
0
|
||||||
|
Модератор
2935 / 1794 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
|
|||
| 25.10.2014, 21:28 [ТС] | |||
|
Добавлено через 4 минуты Может имеет значение, файл посредством include добавляется внутри метода в другой php-файл. Кроме такой "иерархии" эти файлы ничего друг о друге не знают и не должны.
0
|
|||
|
> /dev/null
286 / 119 / 86
Регистрация: 14.05.2014
Сообщений: 767
|
|
| 25.10.2014, 21:42 | |
|
global использовать тоже криво. Можно по подробней задачу?
0
|
|
|
Модератор
2935 / 1794 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
|
|||||||
| 25.10.2014, 23:13 [ТС] | |||||||
|
Есть "шаблон" страницы. В самом его начале создается несколько переменных (объекты в ООП-стиле) и конфигурируется. В дальнейшем идут блоки html и php-кодов. html - "базовая" верстка "шаблона", т.е. создаются колонки макета страницы, а вот контент туда помещается в php-коде, благодаря функции, которой передается ссылка на другой php-файл, кусок которого представлен выше. Т.о. нет необходимости заниматься версткой макета в каждой странице, отдельные блоки страницы разделены логически и физически (по разным файлам). Такова структура проекта. Все остальное описал выше.
Добавлено через 1 минуту Если что нужно уточнить - задавайте вопросы, постараюсь ответить максимально подробно. Добавлено через 1 час 21 минуту Попробовал изобразить задачу в сокращенном виде:
0
|
|||||||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|
| 25.10.2014, 23:17 | |
|
TanaTiX, просто область видимости. Представь функцию как капсулу. Она ничего не знает о том, что было до или после ее вызова или определения. Она знает только то, что есть у нее - внутренние локальные переменные (как $test для функции testExternal) или то, на что ей указали, например, с помощью global (как $login у placeForm). Собственно, думаю, ответ на вопрос темы лежит в этой же области.
0
|
|
|
Модератор
2935 / 1794 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
|
|||||||
| 25.10.2014, 23:20 [ТС] | |||||||
|
Наверное < и > читаются не совсем корректно.
KOPOJI, ок, а как мне до переменной достучаться?
0
|
|||||||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|
| 25.10.2014, 23:26 | |
|
В общем-то, по-нормальному - никак. А что вообще за вложенные во вложенные вызовы, к чему они понадобились? Это нечто наподобие шаблонизатора или что?
1
|
|
|
Модератор
2935 / 1794 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
|
|
| 25.10.2014, 23:28 [ТС] | |
|
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
| 25.10.2014, 23:32 | ||||||
|
З.Ы. Может, тебе надо писать global для самой переменной..?
Добавлено через 4 минуты Если шаблонизатор, то можно сделать наподобие того, как в некоторых фреймворках. Если по простому, то как-то так
1
|
||||||
|
Модератор
2935 / 1794 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
|
||||||
| 25.10.2014, 23:34 [ТС] | ||||||
|
KOPOJI, попробовал так, но логах по-прежнему пишет "undefined variable"
KOPOJI, а можно подробней об отличиях моего убогого и этого не понятного?
0
|
||||||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
| 25.10.2014, 23:40 | ||||||
Сообщение было отмечено TanaTiX как решение
Решение
Я ж не знаю, какой у тебя шаблонизатор
Это просто была догадкаНепонятный могу расписать..
1
|
||||||
|
Модератор
2935 / 1794 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
|
||||||
| 25.10.2014, 23:42 [ТС] | ||||||
|
KOPOJI, вот та (уже измененная) функция, которая "external"
0
|
||||||
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||||||||
| 25.10.2014, 23:57 | ||||||||||||
|
Все правильно. ob_start() => "копить контент в буфер", ob_get_clean() => "получить контент из буфера и освободить буфер". Т.к. результат ob_get_clean никуда не сохраняется, следовательно, он уходит просто "в никуда", а буфер очищен в силу специфики этой функции.
Наверное, я не очень понятно объяснил, как пользоваться этой функцией.
Если в этом файле не будет никакого вывода - то ничего и не выведется. "Снаружи" эти переменные также будут недоступны. Область видимости этих созданных переменных $foo, $bar, $lol заканчивается функцией render и включенными файлами. Причем, при повторном "внутреннем" вызове этой функции render (разумеется, для подключения другого файла) в этой "версии" вызова функции стоящие "выше" переменные (т.е., и объявленные выше $foo, $bar и $lol) будут также недоступны - если только их не передать туда тем же способом. Третий аргумент, где используется ob_start() и иже с ним, нужен для возврата контента в строку. Например
Добавлено через 3 минуты З.Ы.
1
|
||||||||||||
| 25.10.2014, 23:57 | |
|
Помогаю со студенческими работами здесь
14
Область видимости
Область видимости
Область видимости констант Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|