Проблема вызова переменной из другого файла .php

Подобные вопросы уже задавались ранее, но после тщательного изучения нескольких рабочих примеров я не могу заставить это работать на меня.

Я пытаюсь получить доступ к переменной $nameValues это было объявлено в insert-name.php

insert-name.php — первый скрипт, который запускается:

 error_reporting(-1);
$nameValues  = "'".implode("', '", array_values($nameArray))."'";
print_r($nameValues); // returns the expected variable

и insert-answer.php — второй скрипт для запуска:

 error_reporting(-1);
require "insert-name.php";
if (isset($nameValues)) {
print_r("nameValues variable:" . $nameValues);
} else {
echo "variable nameValues does not exist";
}
//returns nameValues variable:'' indicating that $nameValues exists but is empty

Оба файла .php хранятся в одной папке на моем веб-сервере. Я пытался использовать оба require а также include заявления. Я успешно использую require оператор для подключения к моей базе данных в обоих сценариях, не уверен, почему он не работает для insert-name.php,

Редактировать:

Об ошибках не сообщается.
Если оператор возвращает «nameValues ​​variable: »» указывает на то, что $nameValues переменная существует, но пуста

Я тоже пробовал заменить require "insert-name.php"; с require __DIR__."/insert-name.php"; который возвратил «переменная nameValues ​​не существует» из оператора if.

Потому что ни один не дал фатальную ошибку какrequire операторы успешно получили доступ к файлу insert-name.php, но я не знаю, почему один метод думает $nameValues не существует, а другой думает $nameValues пустой.

0

Решение

Нет проблем с доступом к переменным из другого файла, как если бы вы указали, что они находятся в той же области (одна не находится внутри функции и т. Д.). В вашем случае это выглядит так, как будто это просто случай, когда вы звоните print_r()

Когда вы делаете print_r('nameValues variable:" . $nameValues) вы конвертируете $nameValues в строку.

Попробуйте что-то вроде этого, чтобы сбросить $nameValues:

error_reporting(-1);
require "insert-name.php";
if (isset($nameValues)) {
echo "nameValues variable: ";
print_r($nameValues);
} else {
echo "variable nameValues does not exist";
}
0

Другие решения

Как вы сказали:

returns nameValues variable:''

Была одна деталь, которую я упустил, кавычки в конце. Когда вы выводите строку в PHP, она печатает только содержимое (нет напечатанных цитат, если они не находятся в строке).

Фактически это все означает, что $nameArray пусто, так что проверьте скрипт, который генерирует это. Кроме того, из-за того, как implode() работает, array_values() здесь полностью избыточно.

Как простой способ проверить это echo count($nameArray);, Если вывод «0», массив пуст.

0

По вопросам рекламы [email protected]