За последние 24 часа нас посетил 20741 программист и 1122 робота. Сейчас ищут 374 программиста ...

Нужно ли проверить на строку?

Тема в разделе "Прочие вопросы по PHP", создана пользователем Вероломство, 30 мар 2021.

  1. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    615
    Симпатии:
    24
    PHP:
    1. private function clearHtml($target)
    2. {
    3.     if (is_array($target)) {
    4.         $new = [];
    5.  
    6.         foreach ($target as $key => $value) {
    7.             $new[$key] = $this->clearHtml($value);
    8.         }
    9.  
    10.         return $new;
    11.     }
    12.  
    13.     if (is_object($target)) {
    14.         $new = new stdClass();
    15.  
    16.         foreach ($target as $property => $value) {
    17.             $new->{$property} = $this->clearHtml($value);
    18.         }
    19.  
    20.         return $new;
    21.     }
    22.  
    23.     return htmlspecialchars($target);
    24. }
    25.  
    26. // Применение
    27. if (is_array($this->vars)) extract($this->clearHtml($this->vars));

    Имеет ли смысл допилить:
    PHP:
    1. return is_string($target) ? htmlspecialchars($target) : $target;
    или можно всё подряд колбасить? :)
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.734
    Симпатии:
    1.315
    Адрес:
    Лень
    нельзя колбасить, т.к. в строгой типизации будут вылетать ошибки "функция ожидала аргумент с типом string, а пришла канистра с фруктовым задом".
     
    Вероломство нравится это.
  3. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    615
    Симпатии:
    24
    ок,

    я и сам чёт туплю: у htmlspecialchars входной параметр - строка, значит и прилетать в неё должна строка

    решено