簡體   English   中英

限制PHP包含文件中的變量范圍

[英]Restrict scope of variable within include file in php

我正在設計的應用程序中面臨各種沖突的問題。

例如,在我的一個Web應用程序頁面中,有兩個模塊

i:標簽雲模塊ii:照片列表模塊

兩者都具有變量$ listOrder ,例如,當腳本處理模塊“ tag cloudes ”時,它將$ listOrder =“ tagid desc”設置為最初未設置的變量

if(!isset($listOrder))
   $listOrder = "tagid desc";   

當腳本再次到達照片列表模塊時,它將嘗試處理以下行,如上所示。 因為變量已在標簽雲列表中設置。 它保留“ tagid desc”作為值。 這會導致sql錯誤,因為“ tagid”不是照片列表的字段。

這是一個簡單的示例,每個頁面中有4個或5個以上的模塊,每個模塊都有許多相似的變量,這會導致沖突。

我們可以做一些事情來限制變量范圍到php中的模塊級別,以避免這種沖突。

是的你可以。 您可以使用類和(從PHP 5.3開始)命名空間。

如果您有這樣的類,則可以將變量和函數放在該類中:

class Module1
{
  public $listOrder = 'tagid desc';

  public function generateSQL()
  {
    return 'select * from YourTable order by ' . $this->listOrder;
  }
}

現在,您可以創建一個模塊實例(甚至可以創建多個實例),並調用其方法:

$module1 = new Module1;
$module1->listOrder = 'name asc'; // Override default sorting
$sql = $module1->generateSQL();

這只是可能性的一個很小的例子,但是我認為關於類/ oop的完整教程在這里是不合時宜的。 ;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM