PHP:实例化类的问题

时间:2014-01-07 13:47:54

标签: php class oop methods constructor

我尝试创建一个名为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方法,重点是什么?

提前谢谢!

1 个答案:

答案 0 :(得分:6)

isolate()是您的构造方法。

http://www.php.net/manual/en/language.oop5.decon.php

  

为了向后兼容,如果PHP 5找不到给定类的__construct()函数,并且该类没有从父类继承,它将搜索旧式构造函数,其名称为类。