我尝试创建一个名为Isolate的类的新对象(此类用于通过htmlspecialchars等防止XSS和其他攻击)。
所以,我这样做:
$data['name'] = $_POST['name'];
$data = $isolate->isolateArr($data);
我的Isolate类看起来像这样:
class Isolate {
public function isolate($var) {
$iVar = htmlspecialchars($var);
$iVar = mysql_real_escape_string($iVar);
$iVar = stripcslashes($iVar);
return $iVar;
}
public function isolateArr($arr) {
foreach($arr as &$instance) {
$instance = $this->isolate($instance);
}
unset($instance);
return $arr;
}
但结果我收到Missing argument 1 for Isolate
之类的警告。据我所知,它问我第一个函数的参数,但是我不需要调用第一个函数,我需要调用第二个函数(因为在这种情况下我有一个数组)。
那么,为什么它总是要求第一个函数参数?没有任何__construct
方法,重点是什么?
提前谢谢!
答案 0 :(得分:6)
isolate()
是您的构造方法。
http://www.php.net/manual/en/language.oop5.decon.php
为了向后兼容,如果PHP 5找不到给定类的__construct()函数,并且该类没有从父类继承,它将搜索旧式构造函数,其名称为类。