[英]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.