Функция php по умолчанию, которая превращает отрицательные числа в 0 - PullRequest
46 голосов
/ 04 июля 2011

Есть ли такая вещь?

например

$var = -5;
echo thefunction($var); // should be 0


$var = 5;
echo thefunction($var); // should be 5

Ответы [ 5 ]

144 голосов
/ 04 июля 2011

Попробуйте max($var,0), что даст желаемый эффект.См. справочную страницу для получения дополнительной информации.

4 голосов
/ 04 июля 2011

Не встроенный, но здесь у вас есть:

function thefunction($var){
   return ($var < 0 ? 0 : $var);
}

Надеюсь, это поможет

3 голосов
/ 26 октября 2015

В PHP проверить, является ли целое число отрицательным, и если оно затем устанавливает его на ноль, легко, но я искал что-то более короткое (и потенциально более быстрое), чем:

if ($x < 0) $x = 0;

Ну, этоэто очень быстрая проверка и сброс, но есть функция max, которая делает это тоже, и она работает с массивами.

$x = max(0, $x); // $x will be set to 0 if it was less than 0

Функция max () возвращает число с наибольшим значением из двух указанных чисел.

echo max(1, 3, 5, 6, 7); // 7
echo max(array(2, 4, 5)); // 5
echo max(0, 'hello'); // 0
echo max('hello', 0); // hello
echo max(-1, 'hello'); // hello

// With multiple arrays, max compares from left to right
// so in our example: 2 == 2, but 4 < 5
$val = max(array(2, 4, 8), array(2, 5, 7)); // array(2, 5, 7)

// If both an array and non-array are given, the array
// is always returned as it's seen as the largest
$val = max('string', array(2, 5, 7), 42); // array(2, 5, 7)
2 голосов
/ 04 июля 2011
function thefunction($number){
  if ($number < 0)
    return 0;
  return $number; 
}

что должно сделать трюк

1 голос
/ 09 июня 2015

Просто:

echo $var < 0 ? 0 : $var;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...