搜索

首页  >  问答  >  正文

PHP变量重写

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

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

然后 echo $title

在inner.php中-

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

$title = "Page 1";

这当然是行不通的。尝试使用全局但没有成功。如何重写inner.php(header.php)中的$title变量?感谢您的建议,我对 PHP 不太了解。

尝试使用全局甚至函数,但不确定

P粉933003350P粉933003350308 天前456

全部回复(1)我来回复

  • P粉204079743

    P粉2040797432024-01-11 00:18:23

    计算机会按照你告诉它们的顺序执行你告诉它们的事情。如果你这样说:

    1. 将标题设置为“第 1 节”。
    2. 读出标题。
    3. 将标题设置为“第 1 页”。

    计算机将依次执行每个步骤。在第 2 步,它将读出“第 1 部分”,并且第 3 步无法使其“不说”并说出不同的内容。

    这基本上就是您当前代码正在做的事情,中间有一些额外的步骤:

    1. 包含“header.php”
    2. (在 header.php 中)根据 URL 将标题设置为“第 1 节”
    3. (在 header.php 中)显示标题
    4. 使用数据库做一些事情
    5. 将标题设置为“第 1 页”
    6. 显示页面的其余部分

    步骤 5 无法影响步骤 3;这已经发生了。

    避免这种情况的通常方法是将程序分为两个阶段:第一阶段准备数据,从数据库中获取数据,做出有关页面标题等内容的决策;第二阶段显示数据,仅根据已获取的数据做出决策。

    因此,在您的情况下,您可以将“header.php”的数据部分拆分为单独的“startup.php”,步骤如下所示:

    1. 包含“startup.php”
    2. (在startup.php中)根据URL将标题设置为“第1节”
    3. 使用数据库做一些事情
    4. 将标题设置为“第 1 页”
    5. 包含“header.php”
    6. (在 header.php 中)显示标题
    7. 显示页面的其余部分

    现在,标题中的标题会在所有逻辑运行后显示,并且可以显示为“第 1 页”而不是“第 1 节”。

    回复
    0
  • 取消回复