Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
5 / 5 / 2
Регистрация: 22.10.2012
Сообщений: 249

Область видимости переменных со сторонних файлов

03.03.2017, 18:21. Показов 1199. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть файлы
engine/config/config.php
PHP
1
2
3
<?
$location = "1";
?>
files/config.php
PHP
1
2
include "./engine/config/config.php";
$config['locations'] = $location;
И выводит ошибку "Undefined variable: location" в строке 2. Что не так? Версия php 5.6
1
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.03.2017, 18:21
Ответы с готовыми решениями:

Область видимости переменных или правильный инклуд файлов
Здравствуйте, у меня есть файлы db.php &lt;?php define(&quot;SRV&quot;,&quot;localhost&quot;); define(&quot;DB_LOGIN&quot;,&quot;root&quot;); ...

Область видимости переменных
Здравствуйте, у меня небольшое затруднение, я не могу понять почему значения у глобальной переменной не меняется. Так же пробовал через...

Область видимости переменных
Добрый день форумчане! Вопрос так сказать новичка.Есть глобальные переменные и локальные.Если обращатся к глобальной внутри функции то надо...

8
4 / 4 / 0
Регистрация: 14.03.2016
Сообщений: 196
03.03.2017, 18:39
Может потому что нужно было сделать
PHP
1
2
3
<?php
$location = "1";
?>
1
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
03.03.2017, 18:47
Цитата Сообщение от JleHuH213 Посмотреть сообщение
PHP
1
2
3
<?
$location = "1";
?>
PHP
1
2
3
<?php
$location = "1";
?>
Добавлено через 7 минут
Цитата Сообщение от JleHuH213 Посмотреть сообщение
engine/config/config.php
Цитата Сообщение от JleHuH213 Посмотреть сообщение
files/config.php
Я возможно спрошу глупость, но папка engine находится в папке files?
1
5 / 5 / 2
Регистрация: 22.10.2012
Сообщений: 249
03.03.2017, 19:29  [ТС]
Нет. Я указал пути относительно корневой директории (сайта).
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
03.03.2017, 21:22
Лучший ответ Сообщение было отмечено JleHuH213 как решение

Решение

Цитата Сообщение от JleHuH213 Посмотреть сообщение
Нет.
В этом вся проблема.
Цитата Сообщение от JleHuH213 Посмотреть сообщение
Я указал пути относительно корневой директории (сайта).
Ошибаетесь.
В PHP для указания путей есть правила:
1) если путь такого вида folder1/folder/file.ext или ./folder1/folder/file.ext, то обращение идёт относительно текущей директории
2) если путь такого вида /folder1/folder/ile.ext, то "отсчёт" начинается от корня файловой системы сервера (справедливо для UNIX-подобных систем);
3) если путь такого вида ../folder1/folder/file.ext, то обращение идёт относительно родительской директории, т.е. директории уровнем выше.

Для того чтобы указывать пути от корня сайта, нужно к пути прибавлять значение $_SERVER['DOCUMENT_ROOT'].
PHP
1
2
3
4
<?php
define('ROOT', $_SERVER['DOCUMENT_ROOT']);
include ROOT . '/engine/config/config.php';
$config['locations'] = $location;
1
5 / 5 / 2
Регистрация: 22.10.2012
Сообщений: 249
05.03.2017, 12:43  [ТС]
Подскажите еще про область видимости в 2 функциях обе в 1 файле.

PHP
1
2
3
4
5
6
function database_connect(){
    global $database_line;
 
    $database_line = mysqli_connect($config['db']['server'], $config['db']['user'], $config['db']['pass'], $config['db']['db']) or die("Could not connect to mysql");
 
}
PHP
1
2
3
4
function search{
    $mysqli_query = "SELECT `id` FROM `{$config['db']['prefix']}{$config['db']['table']}`";
    $mysqli_result = mysqli_query($database_line, $mysqli_query) or die(mysqli_error($database_line));
}
Ну и в этом случаи выводит "Undefined variable: database_line". Что я не понимаю?
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
05.03.2017, 13:39
JleHuH213, последняя функция синтаксис если неверно составлена
0
5 / 5 / 2
Регистрация: 22.10.2012
Сообщений: 249
05.03.2017, 20:11  [ТС]
Вы про отсутствие "()" в строке "function search{" Это я тут опечатывался.. функция так то возвращает результат запроса. тут удалил это.

Добавлено через 5 часов 28 минут
Еще во второй функции строчку забыл вызвать database_connect();

Добавлено через 56 минут
Попробовал так.. Выводит "Проблемы с функцией =(". Как вызвать функцию?

PHP
1
2
3
4
5
6
function search(){
    database_connect() or die("Проблемы с функцией =(");
 
    $mysqli_query = "SELECT `id` FROM `{$config['db']['prefix']}{$config['db']['table']}`";
    $mysqli_result = mysqli_query($database_line, $mysqli_query) or die(mysqli_error($database_line));
}
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
05.03.2017, 20:35
Цитата Сообщение от JleHuH213 Посмотреть сообщение
global $database_line;
Во второй функции также нужно это прописать.

Цитата Сообщение от JleHuH213 Посмотреть сообщение
PHP
1
database_connect() or die("Проблемы с функцией =(");
Ваша функция ничего не возвращает (нет команды return), поэтому функция возвращает null, поэтому выполняется or die().

Добавлено через 58 секунд
Кстати, в 1-ой функции $config непонятно откуда берётся... в общем всё плохо, почитайте документацию по функциям, особенно про область видимости и global, и начните заново.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.03.2017, 20:35
Помогаю со студенческими работами здесь

Область видимости переменных из HTTP
Кто нибудь может подсказать, почему в простой пользовательской функции переменная $_COOKIE имеет значение, а переменная $HTTP_COOKIE_VARS -...

Область видимости переменных или как правильно спланировать проект
Добрый вечер всем. Подскажите пожалуйста, каким образом распланировать проект так, что бы не пренебрегать ключевым словом global. Я...

Область видимости переменных
Здравствуйте, у меня существует проблема с областью видимости переменных вот в этом коде: ... xhr.onload = function() { try ...

Область видимости переменных
Из метода loader.load, который подгружает модель часов, нужно передать значение в переменную var stats = 0. var stats = 0; ... ...

область видимости переменных
Такая значит интересная задачка: В проекте было две формы и модуль. В модуле описан кучерявый Паблик-массив. Работать с массивом можно из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru