php未定义变量,不会被取消

时间:2014-01-06 04:19:43

标签: php variables undefined

变量$ WebSiteDirectory永远不会被取消,我仍然会收到错误消息

变量在“/../ Include / ini.inc.php”中设置:

$WebSiteDirectory = "mydir\";
$newLine = "<br />";
$phpNewLine = "\n";
它被填满的地方是:

echo $WebSiteDirectory; // this line is fine 
function theFunction($VAR) {
$dir = $WebSiteDirectory."my other dir"; // this line gets an error
var_dump($dir);
return file_exists($dir);
}

如果形成则不确定是否存在错误。但是,我也会在程序中重用$WebSiteDirectory,所以我知道它不会在任何地方被取消。我很确定我是盲人

2 个答案:

答案 0 :(得分:7)

在PHP中,函数范围之外的变量不可见。

您必须将$ WebSiteDirectory作为参数传入函数,或者您可以使用global关键字

function theFunction($VAR){
    global $WebSiteDirectory

请先阅读PHP手册中关于变量范围的一点内容,因为它说明了支持和反对此方法的一些好理由:

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

答案 1 :(得分:0)

将您的变量添加到您的函数中

function theFunction($VAR) {

$WebSiteDirectory = "mydir";
$newLine = "<br />";
$phpNewLine = "\n";

$dir = $WebSiteDirectory."\my other dir"; // this line gets an error
var_dump($dir);
return file_exists($dir);
}

或者您可以将此变量初始化为全局变量

global $WebSiteDirectory = "mydir";
global $newLine = "<br />";
global $phpNewLine = "\n";

然后,只有您可以将此变量访问到您的功能