- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
/**
* Validate natural number (0,1,2,3,...)
*
* @param string $value number
* @return string
*/
public function natural($value)
{
$response = '';
if (!preg_match('/^[0-9]+$/', $value)) {
$response = $this->lang->get_str('system_invalid_neutral');
}
return $response;
}
/**
* Validate natural number, but not a zero (1,2,3,...)
*
* @param string $value number
* @return string
*/
public function natural_no_zero($value)
{
$response = '';
if (!preg_match('/^[0-9]+$/', $value)) {
$response = $this->lang->get_str('system_invalid_neutral_no_zero');
}
if ($value == 0) {
$response = $this->lang->get_str('system_invalid_neutral_no_zero');
}
return $response;
}
zenn1989 16.03.2016 11:00 # +2
b2012993 16.03.2016 12:23 # 0
public static function toNatural($val)
{
return (ctype_digit($val)) ? (int)$val : false;
}
public static function toRealNatural($val)
{
return self::toNatural($val) > 0 ? self::toNatural($val) : false;
}
TarasB 21.03.2016 16:47 # 0
b2012993 16.03.2016 12:24 # 0
public static function toNatural($val)
{
return (ctype_digit($val)) ? (int)$val : false;
}
public static function toRealNatural($val)
{
return self::toNatural($val) > 0 ? self::toNatural($val) : false;
}
deep 16.03.2016 16:30 # +4
filter_var($value, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_OCTAL[, $min[, $max]]);
b2012993 18.03.2016 16:16 # 0
твой вариант лучше.
Shadowbearer 17.03.2016 13:17 # −1
{
$response = '';
if ($value < 0 or !is_int($value)) {
$response = $this->lang->get_str('system_invalid_natural');
}
return $response;
}
b2012993 18.03.2016 16:16 # 0
Shadowbearer 20.03.2016 00:30 # 0
b2012993 21.03.2016 15:36 # 0
$value = "12";
is_int - проверяет на int, a $value пришел строкой, но это число.
is_numeric - определяет число или нет, не смотря на тип.
guest 19.03.2016 18:14 # 0
b2012993 21.03.2016 15:37 # 0
у тебя такое часто бывает?
bormand 21.03.2016 18:50 # 0
К примеру, размер любого фильма в нормальном качестве :) Мы же не знаем, что за числа тут пытаются валидировать.