PHP變數重寫
P粉933003350
P粉933003350 2024-01-10 17:56:17
0
1
460

在 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粉933003350
P粉933003350

全部回覆(1)
P粉204079743

計算機會按照你告訴它們的順序執行你告訴它們的事情。如果你這樣說:

  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 節」。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板