2014-01-28 143 views
0

我是新來OOP,我想知道我是否應該使用單一功能或對象。 我應該這樣做:我應該在OOP中使用單個函數還是對象?

class Escape_String{ 
    protected $string; 

    function __construct($string){ 
     if(get_magic_quotes_gpc) 
      return $string; 
     else 
      return addslashes($string); 
    } 
} 

$string = new Escape_String($_GET['string']); 

,或者我應該只使用一個函數,而不是一個對象? (好像是這個:)

escapeString($string){ 
    if(get_magic_quotes_gpc) 
     return $string; 
    else 
     return addslashes($string); 
} 

$string = escapeString($_GET['string']); 
當然

的實物Escape_String /功能escapeString比較複雜一點,但你應該明白我的意思

+0

'Escape_String'對象除了'addslashes'還能做其他任何事嗎?因爲如果不是這樣,一個班級看起來像是過度殺傷。 –

+0

都不是。你想要做的是錯誤的方法。使用[PDO預處理語句(http://www.php.net/manual/en/pdo.prepared-statements.php) – MikeSW

+0

解決: 我會做出一個名爲「逍遙遊」類或類似的,那麼我要是把它多個靜態功能不同的「類型」(MySQL的查詢,字符串,數組等) – Jonan

回答

1

流行的框架閱讀SOURSE代碼在這種情況下,我會說這是最適合作爲函數或者作爲一個類的公共靜態方法,如果你有其他類似的方法你想組成一個類庫。然而,我不會爲這種方法創建一個類。

2

嘗試這樣:

class StringUtil 
{ 

    static public function escapeString($string) 
    { 
     if(get_magic_quotes_gpc) { 
      return $string; 
     } else { 
      return addslashes($string); 
     } 
    } 

} 

它是靜態的,便於使用。

echo StringUtil::escapeString($string); 
+0

你應該爲未來的用戶添加一些關於爲什麼使用靜態方法的解釋。 +1 – raam86

相關問題