我在php代码中使用EOF
函数。
但我有一个问题。
当我尝试从另一个文件调用变量时,它只是忽略它。
我在另一个文件(header.inc.php)中有一个变量,如下所示:
$site['url'] = "http://www.mydomainname.com";
然后我将require函数放在EOF代码所在的位置:
require_once('../../inc/header.inc.php');
EOF代码所在的文件如下所示:
function getServices() {
$sCode .= <<<EOF
<a href="{$site['url']}" class="amenu">Home</a>
EOF;
return $sCode;
}
当我调用该函数时,变量$ site ['url']为空。
这让我抓狂!有没有理由为什么EOF代码应该忽略该变量??
答案 0 :(得分:4)
尝试global $site;
作为您函数的第一行。除非您将它们作为全局变量引入函数,否则任何全局变量都不会在PHP中自动显示。
答案 1 :(得分:0)
这与heredoc语法无关。这是一个简单的可变可见性问题。
getServices()
一般无法“看到”$site['url']
(或$site
)。
如果$site
是全局(ew),请将global $site;
写为函数的第一行,以便将其纳入范围。
否则,将其作为函数参数传递给getServices()
。
BTW,$sCode .= ...
应该是$sCode = ...
,如果我正确地猜测你正在制作一个新的字符串变量,而不是附加到现有字符串变量。