Переменные не хранятся

#php #variables #require-once

#php #переменные #требовать-один раз

Вопрос:

У меня есть php-скрипт с 2 переменными. $company и $user. Во время этого .php-скрипта я require_once «/var/www/etc/etc/etc/etc/»

В файле .php, который мне требуется _once, переменные из предыдущего скрипта .php не передаются. Я не могу понять, почему или что я делаю неправильно. Пример.

master.php скрипт

 $company = "Some Company";

$user = "John";

require_once "/var/www/$company/$user/example.php
  

example.php скрипт

 $myFile = "/var/www/$company/$user/Template/Download/example.php";
  

Данные, которые хранятся в переменных $company amp; $ user, не сохраняются в примере скрипта. Я не могу понять, почему.

Спасибо

Комментарии:

1. Вы уверены, что скрипт не выдает ошибку, потому что вы забыли "; в своем вызове require_once?

2. Нет, это была просто опечатка здесь. В моем коде есть;

3. Выдается ли ошибка? Если нет, попробуйте включить самый высокий уровень сообщения об ошибках (включите строку error_reporting(E_ALL); в верхней части вашего скрипта) и укажите ошибки, которые отображаются.

Ответ №1:

Если переменные используются за пределами их области, вам нужно использовать ключевое слово «global»:

 $foo = 'bar';

function fooBarBad() {
    echo $foo; //will echo nothing
}

function fooBarOk() {
    global $foo;

    echo $foo; //will echo bar
}
  

Ответ №2:

Используете ли вы переменные внутри функции на новой странице? Если это так, то вам нужно зарегистрировать их как глобальные переменные внутри функции. В противном случае переменные должны быть прочитаны нормально в скрипте, вызывающем их из include.

Комментарии:

1. Да, я использую переменные внутри функции на новой странице php. Как мне зарегистрировать их как глобальные внутри функции? И регистрирую ли я их как глобальные внутри функции или раньше?

Ответ №3:

Находятся ли ваши переменные внутри функции? если это так, вы, вероятно, потеряли свои переменные.

В этом случае вам пришлось бы использовать либо ключевое слово «global» внутри функции, либо использовать переменную $GLOBALS для регистрации ваших переменных.

Чтобы действительно увидеть, правильно ли переданы ваши переменные, вы можете сделать

 var_dump($company);
var_dump($user);
  

в верхней части файла example.php