如何以下列方式「傳遞」eventName到dbSafe()?這可能嗎? dbSafe()會是什麼樣子?如何將類屬性傳遞給類方法?
$eventClass->eventName->dbSafe();
我猜dbSafe()看起來大致是這樣的:
public function dbSafe() {
return mysql_real_escape_string($this);
}
如何以下列方式「傳遞」eventName到dbSafe()?這可能嗎? dbSafe()會是什麼樣子?如何將類屬性傳遞給類方法?
$eventClass->eventName->dbSafe();
我猜dbSafe()看起來大致是這樣的:
public function dbSafe() {
return mysql_real_escape_string($this);
}
您可以封裝在一個新的類的每個屬性暴露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();
如果$event
是一個叫eventName
屬性和一個名爲dbSafe
方法的類的實例,那麼也許你想這樣做:
$safeName = $event->dbSafe ('eventName');
public function dbSafe ($propertyName){
return mysql_real_escape_string($this->$propertyName);
}
,但它不是納入一個偉大的想法你的數據會轉移到你所有的類中,就像你在這裏做的那樣。你真的需要處理所有轉義的中央數據庫管理代碼,所以你不能忘記它。