2014-01-07 137 views
0

我嘗試創建一個名爲Isolate的類的新對象(該類用於通過htmlspecialchars等防止XSS和其他攻擊)。PHP:問題實例化類

所以,我不喜歡這樣寫道:

$data['name'] = $_POST['name']; 
$data = $isolate->isolateArr($data); 

我的隔離級是這樣的:

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方法,有什麼意義?

預先感謝您!

回答

6

isolate()是您的構造方法。

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

爲了向下兼容,如果PHP 5無法找到一個給定類__construct()函數,和類不從父類繼承一個,它將搜索舊式構造函數,由類的名稱。

+0

應該加入'__construct(){$ a ='b'; }'幫忙? –

+0

我不知道$ a ='b';應該這樣做,但無論如何。 – Jessica

+0

我的意思是抽象的東西。因爲我不確定我被允許創建抽象構造函數方法 –