2010-07-16 76 views
-1

如何以下列方式「傳遞」eventName到dbSafe()?這可能嗎? dbSafe()會是什麼樣子?如何將類屬性傳遞給類方法?

$eventClass->eventName->dbSafe(); 

我猜dbSafe()看起來大致是這樣的:

public function dbSafe() { 
    return mysql_real_escape_string($this); 
} 

回答

2

您可以封裝在一個新的類的每個屬性暴露dbSafe()。這有點像一個簡單的裝飾模式。

class Property { 
    private $value; 
    function dbSafe() { 
     return addslashes($this->value); //substitute for your function 
    } 
    function __construct($v) { $this->value = $v; } 
} 

class Event { 
    function __get($name) { 
     return new Property($name); 
    } 
} 

$e = new Event; 
echo $e->{"df'\\"}->dbSafe(); 
0

如果$event是一個叫eventName屬性和一個名爲dbSafe方法的類的實例,那麼也許你想這樣做:

$safeName = $event->dbSafe ('eventName'); 

public function dbSafe ($propertyName){ 
    return mysql_real_escape_string($this->$propertyName); 
} 

,但它不是納入一個偉大的想法你的數據會轉移到你所有的類中,就像你在這裏做的那樣。你真的需要處理所有轉義的中央數據庫管理代碼,所以你不能忘記它。

相關問題