За последние 24 часа нас посетили 21480 программистов и 1667 роботов. Сейчас ищут 708 программистов ...

Проверка типа данных передаваемых в функцию

Тема в разделе "Прочие вопросы по PHP", создана пользователем Sergey89, 25 янв 2007.

  1. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Есть некий класс:
    PHP:
    1.  
    2. <?php
    3. class Api {
    4.     private $_flags = array();
    5.  
    6.     public function Init($flags) {
    7.         if (is_array($flags)) {
    8.             $this->_flags = $flags;
    9.         }
    10.     }
    11. }
    12.  
    13. $api = new Api();
    14. $api->init(array('flag1' => 'state1', 'flag2' => 'state2'));
    15. ?>
    Стоит ли вобще делать эту проверку или лучше положить заботу о типах данных на плечи программиста?
     
  2. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    имхо, стоит. и если уж передан не тот тип данных, я бы как-то оповещал об этом, будь то, хотя бы, return false.
     
  3. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Я вобще тоже склоняюсь к выполнению проверки. Регистрация ошибок будет предусмотрена.
     
  4. vasa_c

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

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    А по-моему нафиг.
     
  5. Anonymous

    Anonymous Guest

    А по моему «It depends» (c)
     
  6. vb

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

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    присоединяюсь
     
  7. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    http://www.php.net/manual/en/language.o ... inting.php
    Эххх... если бы не
    Свалил бы всё дело на плечи программиста =]
     
  8. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Если у тебя PHP 5.1+ only и у тебя только массивы, то можешь сделать так:
    PHP:
    1.  
    2. <?php
    3. class Api {
    4.     private $_flags = array();
    5.  
    6.     public function Init(array $flags) {
    7.         $this->_flags = $flags;
    8.     }
    9. }
    10.  
    11. $api = new Api();
    12. $api->init(array('flag1' => 'state1', 'flag2' => 'state2'));
    13. ?>
    Если в функцию передадут не масив, это вызовет ошибку на уровне PHP.