Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从一个变量访问另一个变量_Php_Scope_Include - Fatal编程技术网

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没有定义 也许有一

我有一个名为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没有定义


也许有一种更好的面向对象的方法来实现这一切,但我只是使用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,第二个例子,“函数中使用的任何变量在默认情况下都被限制在局部函数范围内”。这确实使它工作起来。我必须多读一读,因为我不完全理解,但它是有效的。