В PHP по каким причинам я не могу включить переменную из внешнего файла?

Если у меня $ var определено в Page1.php и в Page2.php, у меня есть

//Page2.php
include('Page1.php');

echo $var;

По каким причинам он не выводит на экран значение $ var? Файлы находятся в одном каталоге, поэтому пути не должны быть проблемой. Я проверил файл php.ini, и у меня ничего не выскакивает. Есть идеи?

... Я полагаю, вы проверили, что в $ var действительно есть содержимое? Я не могу сосчитать, сколько раз я случайно имел пробел или "" в строке и пытался его распечатать.

Steve Klabnik 07.10.2008 21:36

Откуда поступает вызов включения в Page2? Как объявляется var?

Paolo Bergantino 07.10.2008 21:38

Стив, да, я проверил, что в $ var есть контент. Паоло, $ var объявляется на странице 1. $ var = "привет";

CoolGravatar 07.10.2008 21:46

Было бы полезно увидеть и Page1.php.

ceejayoz 07.10.2008 21:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
291
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Возможные причины:

  • Текущий рабочий путь не всегда совпадает с файлом. Например, если Page2.php включается на более высокий уровень, этот более высокий уровень будет путем. Либо убедитесь, что вы загрузили Page2.php напрямую, либо переместите Page1.php соответствующим образом.
  • Убедитесь, что $var действительно такой, каким вы его ожидаете. Повторите его в Page1.php для подтверждения. (это также проверяет включение правильного файла)
  • Если исходный код на самом деле не так прост, убедитесь, что вы нигде не отменяете / очищаете $var.

Я только что протестировал:

page1.php:

<?php
$foo = "bar"
?>

page2.php:

<?php
include('page1.php');
echo $foo;
?>

Это работает.

Возможно, вы захотите проверить пути к своим файлам. Также var_dump () удобна для проверки вывода переменной.

Ответ принят как подходящий

Если бы это была проблема с путём, вы бы увидели предупреждение в своём журнале ошибок. Вы также можете изменить на require вместо include, и это станет очевидным.

echo getcwd();

Вы также можете распечатать свой рабочий каталог, чтобы выяснить, что не так.

$ Var создается в функции? Если да, убедитесь, что у вас есть

global $var;

перед первым назначением в этой функции.

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

Другие вопросы по теме