2010-05-13 3 views
2

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

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

ответ

3

Это точно, как это работает.

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

+0

Спасибо. Теперь это работает. У меня была несогласованность в именах (ошибка заклинания). – Roman

4

См PHP определить: http://php.net/manual/en/function.define.php

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

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

+3

Большинство соглашений об именах будут возражать против использования тире в именах констант/переменных - вместо этого используйте подчеркивание. –

+0

Это, безусловно, верно для PHP. – Finbarr

0

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

+0

Это не лучший способ, это просто альтернатива - и он не предлагает никаких исправлений. –

4

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

Например:

$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' 
} 

Другой вариант, как Finbarr mentions, является определение постоянной:

define('FOO', 'bar'); 

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

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

Смежные вопросы