Почему эта переменная исчезает? - PullRequest
0 голосов
/ 26 ноября 2009

Вероятно, у этого должен быть простой ответ, который я просто не могу понять.

В любом случае, у меня есть документ php, и внутри него я определяю <?php $pathprefix = '../'; ?>

Позже в документе я использую <?php require([somefile.php]); ?>, а внутри somefile.php у меня есть строка с надписью <?php echo($pathprefix); ?>, но '../', который я присвоил $ pathprefix, никогда не появляется. Он действует так, как будто переменная никогда не создавалась. В чем моя проблема?

Ответы [ 2 ]

1 голос
/ 26 ноября 2009

Действительно нужно увидеть ваш исходный код, чтобы определить область. С тем, что вы предоставили, есть два варианта:

Установить в $ GLOBALS

file1.php:

$GLOBALS['pathprefix']= '../';

file2.php:

require('file1.php');
print_r($GLOBALS['pathprefix']);

Используйте класс

file1.php:

class Settings {
 const PATH_PREFIX= '../';
}

file2.php:

require('file1.php');
print_r(Settings::PATH_PREFIX);

Понимание области действия в PHP

http://www.php.net/manual/en/language.variables.scope.php

Удачи.

1 голос
/ 26 ноября 2009

Переменная находится вне области видимости в "somefile.php". Вы можете объявить переменную глобальной, то есть global $pathprefix = '../'. Затем в somefile.php поместите global $pathprefix; вверху.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...