我昨晚问了这个问题,但答案告诉我研究全球阵列。花了一整天试图解决这个问题之后,我牺牲了我的手牌,现在我正在寻求帮助。我有3个文件一起工作以回显变量$body
。这3个文件是login.php,global.php和theme.php。
登录文件按预期工作并显示一条消息,当我用echo替换$ body时我已经登录,但为了轻松有效地合并我的主题,我想使用变量$ body作为放置原因。当我在主题文件中回显$ body时没有出现。下面是我文件的一个简单例子
的login.php
<?php
include('../tools/global.php');
$body="
some scripting here";
?>
global.php
<?php
function function1(){
global $body;
}
function1();
print_r($body);
include('../theme/default.php');
include('config.php');
?>
default.php又名theme.php文件
<table border='0'>
<tr>
<td colspan='2'>
<center>bar</center>
</td>
</tr>
<tr>
<td width='10%'>
hey<br>hey<br>
</td>
<td>
hello
<?php
echo $body;
?>
</td>
</tr>
</table>
好吧那么我将如何注册全局$ body以便它总是在主题文件中回显$ body?我尝试过很多不同的东西,但似乎没什么用。
答案 0 :(得分:0)
Login.php
包括global.php
但$body
仅在Login.php
被定义为global.php
之后定义 - 这就是为什么你不能在{{1}中使用它}}
如果你想在global.php
中使用它 - 在那里声明它!
答案 1 :(得分:0)
我认为关于调查全局变量的建议可能是不好的建议。全球几乎从来都不是答案。您也错误地使用它们。 global关键字允许您在函数内使用全局变量(在函数外部定义)。就这么简单。但是,将变量作为参数传递给函数是更好的做法。当您想要在不同文件中重复使用的东西时,将它放在包含文件中的函数中,而不是仅包含文件的主体。例如,在global.php中,您有:
<?php
function renderPage($body) {
?>
<table border='0'>
<tr>
<td colspan='2'>
<center>bar</center>
</td>
</tr>
<tr>
<td width='10%'>
hey<br>hey<br>
</td>
<td>
hello
<?php
echo $body;
?>
</td>
</tr>
</table>
<?php
}
?>
然后在login.php中:
<?php
require('global.php');
$body = 'This is the login page.';
renderPage($body);
?>