За последние 24 часа нас посетили 52889 программистов и 1768 роботов. Сейчас ищут 935 программистов ...

Всегда ли нужна проверка типа данных?

Тема в разделе "PHP для новичков", создана пользователем silvan, 3 апр 2007.

  1. eduha

    eduha Активный пользователь

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
    Только если сделаем повторно (int) при составлении запроса

    в одной из версий IPB был как раз такой баг:
    PHP:
    1. $this->chosen_month = ( ! intval($ibforums->input['m']) ) ? $this->now_date['mon'] : $ibforums->input['m'];
    После этого $this->chosen_month шел в запрос без всяких проверок...
     
  2. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    AlexGousev, вам шашечки или ехать? :) описанную проблему ассерты решают. более того - они гораздо более гибкие, чем жёсткая типизация параметров. кроме того, никто тебе не мешает в случае срабатывания ассерта громко ругаться и бить нерадивого программиста током. все средства для этого в пхп есть (ну разве что нужно дополнительно докупить usb-электрошокер ;-))
     
  3. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    dark-demon
    да вариантов решить проблему много. Я сам использую функцию проверки параметров, которая ругается правильно и однотипно.

    Но вопрос в наличии средств автоматического контроля типа параметров PHP. Т.е. на уровне языка (синтаксиса). Лично мне это кажется хорошей идеей: указал тип параметра явно - PHP контролирует тип, не указал - не контролирует.

    Проблема есть и разработчики ее по-немногу пытаются решить:
    Маловато мощи у этой штуки будет... Но, идея хорошая! :)