如何以下列方式将eventName“传递”到dbSafe()?这可能吗? dbSafe()会是什么样子?
$eventClass->eventName->dbSafe();
我猜dbSafe()看起来大致如下:
public function dbSafe() {
return mysql_real_escape_string($this);
}
答案 0 :(得分: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();
答案 1 :(得分:0)
如果$event
是具有名为eventName
的属性的类的实例和名为dbSafe
的方法,那么您可能希望这样做:
$safeName = $event->dbSafe ('eventName');
public function dbSafe ($propertyName){
return mysql_real_escape_string($this->$propertyName);
}
但是,将数据转移到所有类中并不是一个好主意,就像你在这里做的那样。你真的想要处理所有转义的中央数据库管理代码,所以你不能忘记它。