Как я могу увидеть переменную, определенную в другом php-файле? - PullRequest
2 голосов
/ 14 мая 2010

Я использую одну и ту же константу во всех моих файлах php. Я не хочу присваивать значение этой переменной во всех моих файлах. Итак, я хотел создать один файл "parameters.php" и выполнить его там. Затем во всех других файлах я include «параметры.php» и использую переменные, определенные в «параметрах.php».

Это была идея, но она не работает. Я также попытался сделать переменную global. Это тоже не работает. Есть ли способ сделать то, что я хочу? Или может быть какой-то альтернативный подход?

Ответы [ 4 ]

4 голосов
/ 14 мая 2010

Я предполагаю, что вы пытаетесь использовать глобальные переменные в теле функции. Переменные, определенные таким образом, не доступны в функциях без глобального объявления в функции .

Например:

$foo = 'bar';

function printFoo() {
  echo "Foo is '$foo'";   //prints: Foo is '', gives warning about undefined variable
}

Есть две альтернативы:

function printFoo() {
  global $foo;
  echo "Foo is '$foo'";   //prints: Foo is 'bar'
}

ИЛИ:

function printFoo() {
  echo "Foo is '" . $GLOBALS['foo'] . "'";   //prints: Foo is 'bar'
}

Другой вариант, как Финбарр упоминает , - определить константу:

define('FOO', 'bar');

function printFoo() {
  echo "Foo is '" . FOO . "'";   //prints: Foo is 'bar'
}

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

4 голосов
/ 14 мая 2010

См. Определение PHP: http://php.net/manual/en/function.define.php

define("CONSTANT_NAME", "Constant value");

Доступ к чему-либо еще в коде с CONSTANT_NAME. Если значения постоянны, вам определенно лучше использовать функцию define, а не только переменные - это позволит вам случайно не перезаписать переменные константы.

3 голосов
/ 14 мая 2010

Именно так и работает.

Установлены ли отчеты об ошибках, и есть ли что-нибудь в журнале ошибок? Я предполагаю, что включение не удалось, но вы не видите ошибку.

0 голосов
/ 14 мая 2010

Пусть все ваши страницы начинаются в одном файле, который определяет параметры, а затем отправляются на соответствующие подстраницы. Таким образом, переменные, определенные в первом файле, будут существовать на всех включенных страницах.

...