Php 从一个变量访问另一个变量
我有一个名为index.PHP的PHP文件,其中我说:Php 从一个变量访问另一个变量,php,scope,include,Php,Scope,Include,我有一个名为index.PHP的PHP文件,其中我说: include_once "settings.php"; include_once "autoload.php"; settings.php文件除其他外还显示: $srcDir = "/home/blah.php"; 那么autoload.php有如下功能: function __autoload($class) { echo "srcdir is: $srcDir"; } 但是我得到一个错误,$srcDir没有定义 也许有一
include_once "settings.php";
include_once "autoload.php";
settings.php文件除其他外还显示:
$srcDir = "/home/blah.php";
那么autoload.php有如下功能:
function __autoload($class)
{
echo "srcdir is: $srcDir";
}
但是我得到一个错误,$srcDir没有定义
也许有一种更好的面向对象的方法来实现这一切,但我只是使用settings.php来设置文件路径,我希望公司的图形设计师可以轻松地对其进行编辑,只需将简单的文件将变量放入函数的作用域即可
function __autoload($class)
{
global $srcDir;
echo "srcdir is: $srcDir";
}
你是说
$srcDir=“/home/blah.php”代码>(错过了$
)?只要变量是在当前范围内定义的,它们就可以通过在范围内访问它们的连续包含的脚本看到。哦,这只是我在这里的一个输入错误,美元就在那里。是的,我对它为什么不起作用感到非常困惑。从自动加载函数中试试文件“获取内容”('settings.php');如果它不起作用,那么文件就不包括在内。试试看,或者你可以打印(获取包含的文件());要查看是否正在加载设置文件有多奇怪-当我打印文件内容行时,没有显示任何内容,但print\r get included files(打印获取包含的文件)确实显示包含的settings.php文件。我甚至把print\r放在函数中,它显示了包含的文件,但我仍然得到了错误。而settings.php文件本身是正确的,它设置了变量,如果我在其中添加了一个echo来显示变量,它就会工作。奇怪的是,这是不必要的,一旦你包含了一个php文件,它的行为就像代码被附加在它包含的地方一样。@Euphoria,第二个例子,“函数中使用的任何变量在默认情况下都被限制在局部函数范围内”。这确实使它工作起来。我必须多读一读,因为我不完全理解,但它是有效的。