为什么这个变量消失了?

时间:2009-11-26 06:08:20

标签: php variables

这应该有一个简单的答案,我无法弄清楚。

无论如何,我有一个php文档,在其中我定义了<?php $pathprefix = '../'; ?>

稍后在文档中我使用<?php require([somefile.php]); ?>并在somefile.php中,我有一行说<?php echo($pathprefix); ?>但是我分配给$ pathprefix的'../'永远不会出现。它的作用就像变量从未实例化过。我的问题是什么?

2 个答案:

答案 0 :(得分:1)

变量超出了“somefile.php”的范围。您可以将变量声明为global,即global $pathprefix = '../'。然后在somefile.php中将global $pathprefix;放在顶部。

答案 1 :(得分:1)

确实需要查看源代码以确定范围。根据您提供的内容,这里有两个选项:

设置$ 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

祝你好运。