====== Функции для проверки данных ===== Все функции бросают исключение **lmbInvalidArgumentException**, если переданный параметр не удовлетворяет условию. ==== lmb_assert_true( $value ) ==== Проверка на "положительность" параметра. lmb_assert_true(true); lmb_assert_true(false); //исключение lmb_assert_true(false, 'Ну что же вы мне все врете. Правды хочу!'); //исключение с пользовательским текстом сообщения lmb_assert_true(1); lmb_assert_true(0); //исключение lmb_assert_true(1.1); lmb_assert_true(0.0); //исключение lmb_assert_true('foo'); lmb_assert_true(''); //исключение lmb_assert_true(array(1)); lmb_assert_true(array()); //исключение lmb_assert_true(new stdClass()); // все верно, нет исключения ===== lmb_assert_type ($value, $expected_type )===== Проверка параметра на принадлежность определенному типу. //Простые типы lmb_assert_type(true, 'bool'); lmb_assert_type(false, 'boolean'); //alias для bool lmb_assert_type(0, 'boolean'); //исключение lmb_assert_type(0, 'boolean', 'Ну не булеан это!'); //исключение с пользовательским текстом сообщения lmb_assert_type(0, 'integer'); lmb_assert_type(1, 'numeric'); //alias для integer lmb_assert_type(false, 'numeric') //исключение lmb_assert_type(0.0, 'float'); lmb_assert_type(0xfffffffffffffffffffff, 'double') //alias для float lmb_assert_type(1, 'double') //исключение lmb_assert_type('1', 'string'); lmb_assert_type(1, 'string') //исключение lmb_assert_type(array(), 'array'); lmb_assert_type(new ArrayObject, 'array') //SPL-класс ArrayObject имплементирует интерфейс ArrayAccess lmb_assert_type(1, 'array') //исключение lmb_assert_type(new stdClass(), 'object'); lmb_assert_type(1, 'object') //исключение //Классы (и, соответственно, интерфейсы) объектов lmb_assert_type(new ArrayObject, 'ArrayObject'); lmb_assert_type(new ArrayObject, 'ArrayAccess'); lmb_assert_type(new ArrayObject, 'SomeClass') //исключение ===== lmb_assert_reg_exp ( $string, $pattern )===== Проверка строки на совпадение с регулярным выражением. //простой поиск подстроки lmb_assert_reg_exp(array(), 'a'); //исключение, т.к. не строка lmb_assert_reg_exp('abc', 'a'); lmb_assert_reg_exp('abc', 'x'); //исключение lmb_assert_reg_exp('abc', 'x', 'В вашей строке "x" не найдено'); //исключение с пользовательским текстом сообщения //PCRE шаблоны lmb_assert_reg_exp('abc', '/b/'); lmb_assert_reg_exp('abc', '/x/'); //исключение ===== lmb_assert_array_with_key ( $array, $key )===== Проверка наличия ключа в массиве. lmb_assert_array_with_key(1, 'foo'); //исключение, т.к. не массив lmb_assert_array_with_key(array('foo' => 1), 'foo'); lmb_assert_array_with_key(array('foo' => 1, 'bar' => 2), array('foo', 'bar')); //проверка сразу на несколько ключей lmb_assert_array_with_key(array('foo' => 1), 'bar'); //исключение lmb_assert_array_with_key(array('foo' => 1), 'bar', 'В вашем "фу" "бара" не найдено'); //исключение с пользовательским текстом сообщения