重写变量(PHP)

tvz2xvvm  于 2022-12-17  发布在  PHP
关注(0)|答案(1)|浏览(125)

在header.php中有一个变量$title,它被定义在同一个地方(取决于页面的URL)。在一个内部页面中,我想覆盖$title,因为它是从那里的数据库中获取的。例如:在header.php中有

if (...) {$title = "Section 1";}

然后echo $title
在inner.php中-

include(header.php); ... SELECT .....

$title = "Page 1";

当然,这是行不通的。尝试使用global,但没有成功。如何从inner.php(从header.php)重写$title变量?谢谢你的建议,我对PHP了解不多。
尝试使用全局和均匀函数,但没有使用它

6gpjuf90

6gpjuf901#

计算机非常严格地按照你告诉它们的顺序去做你告诉它们的事情。如果你这样说:
1.将标题设置为“第1节”。
1.读出标题。
1.将标题设置为“第1页”。
计算机会依次完成每一步,在第二步,它会读出“第一节”,而第三步没有办法让它“收回”,说些不同的话。
这基本上就是您当前代码正在做的事情,中间还有一些额外的步骤:
1.包含'header.php'
1.(在header.php中)根据URL将标题设置为“第1节”
1.(在header.php中)显示标题
1.对数据库进行一些操作
1.将标题设置为“第1页”
1.显示页面的其余部分
第五步不可能影响第三步已经发生了。
避免这种情况的常用方法是将程序分为两个阶段:第一阶段 * 准备数据 *,从数据库中提取,对页面标题等内容做出决定;第二阶段 * 显示数据 *,仅根据已获取的数据做出决策。
因此,在您的例子中,您可以将“header.php”的数据部分拆分为一个单独的“startup.php”,步骤如下所示:
1.包含“startup.php”
1.(在startup.php中)根据URL将标题设置为“第1节”
1.对数据库进行一些操作
1.将标题设置为“第1页”
1.包含'header.php'
1.(在header.php中)显示标题
1.显示页面的其余部分
现在,在所有逻辑运行之后,标题中的标题会显示出来,并且可以显示为“Page 1”而不是“Section 1”。

相关问题