- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
(string)(int)$var === $var. Красиво - но плохо.
Зачем эта универсальность? В $_POST, $_GET приходят переменные уже с определенным типом. То-есть, если нужен Ineteger (не Float) с значением больше 0, достаточно проверить на is_int и > 0.
Вторая проверка выдаст фатальную ошибку, если $var = new some_object();
Не, ну если переменная может содержать любой тип данных, то:
(is_string($var) || is_numeric($var)) && ctype_digit((string)$var)
kiowas, либо вы не то пишите, либо вы не то проверяете... и 0 и '0' результат bool(true). Может у нас разные версии php?..
В preg_match стоит маска /[^0-9]+/
Она срабатывает, если найдено что-то не похожее на цифру и тогда возвращается false.
Если я передам в нее '0', он подумает, что это цифра и вернет true, но это не положительное целое число.
или же я задачу понял не полностью...
(string)(int)$var === $var. Красиво - но плохо.
Зачем эта универсальность? В $_POST, $_GET приходят переменные уже с определенным типом. То-есть, если нужен Ineteger (не Float) с значением больше 0, достаточно проверить на is_int и > 0.
Проверка не только переменных из $_POST и $_GET. Вот в чем соль :(
---------- Добавлено 07.06.2013 в 20:00 ----------
Не, ну если переменная может содержать любой тип данных, то:
(is_string($var) || is_numeric($var)) && ctype_digit((string)$var)
Очень близко, но нужно лепить дополнительные проверки, так как проверку проходят занчения:
1. $var = '054';
2. $var = '0';
3. $var = 0;
Если я передам в нее '0', он подумает, что это цифра и вернет true, но это не положительное целое число.
да боже ж ты мой
if( preg_match('/[^0-9]/', $num) OR $num < 1 ) return false;
return true;
или же я задачу понял не полностью...
Проходит проверку, если:
1. $var = 'asdfa';
2. $var = '25.0'
И много где еще.... :(
на предмет того, что в PHP отсутствует, казалось бы банальная функция
И так задача:
Проверить, желательно красиво и кратко, переменную, на предмет того, что она содержит целое положительное число, или строку содержащую данное число, например '13' или '142', в строке никаких лишних символов не должно быть.
а зачем вообще?
строка, состоящая из одних только чисел? тогда прег_матч справится:
больше нуля? ещё одно условие:
Проходит проверку, если:
2. $var = '25.0'
kiowas, вы уж извините, вы изначально не правильно поставили задачу. Валидация данных по своему критерию и проверка типа данных - это разные вещи.
да боже ж ты мой
if( preg_match('/[^0-9]/', $num) OR $num < 1 ) return false;
return true;
😂
Проходит, если:
1. $var = '054';
2. $var = true;
А так же если переменная является массивом или объектом. Нужно еще лепить....