2014-01-28 4 views
0

Я новичок в ООП, и я хочу знать, следует ли использовать одну функцию или объект. Должен ли я это сделать:Должен ли я использовать одну функцию или объект в ООП?

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' делать что-то еще, кроме как просто' addlashes'? Потому что, если нет, класс кажется излишним. –

+0

Ничего. То, что вы хотите сделать, это неправильный подход. Используйте [подготовленные заявления PDO] (http://www.php.net/manual/en/pdo.prepared-statements.php) – MikeSW

+0

Решено: Я сделаю класс под названием «Побег» или аналогичный, ll поместить в него несколько статических функций для разных «типов» (запросы MySQL, строки, массивы и т. д.) – Jonan

ответ

3

в вас случае это лучше классе имени что-то вроде StringUtils и сделать статический метод escapeString

Я рекомендую прочитать книгу, как http://shop.oreilly.com/product/mobile/9780596007126.do и чтение источниковедения код популярных структур как Symfony2

1

в этом случае, я бы сказал, что это лучше всего подходит в качестве или как открытый статический метод для класса, если у вас есть другие подобные методы, которые вы хотите сгруппировать в библиотеку классов. Однако я бы не сделал класс только для этого метода.

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

Смежные вопросы