How to check whether a number is positive/zero/negative without using conditional statements in PHP

1 Answer

0 votes
$n = 89;

// create text labels for each possible case
$result = [
    "negative",  // index 0
    "zero",      // index 1
    "positive"   // index 2
];

// compute an index without using any conditional statements
// (n > 0) becomes 1 if true, 0 if false
// (n < 0) becomes 1 if true, 0 if false
// index = 1 + (n > 0) - (n < 0)
$index = 1 + ($n > 0) - ($n < 0);

// print the classification
echo $result[$index] . PHP_EOL;

/*
  Checks:

  n = -3
  (n > 0) = 0
  (n < 0) = 1
  index = 1 + 0 - 1 = 0
  result = negative

  n = 0
  (n > 0) = 0
  (n < 0) = 0
  index = 1 + 0 - 0 = 1
  result = zero

  n = 89
  (n > 0) = 1
  (n < 0) = 0
  index = 1 + 1 - 0 = 2
  result = positive
*/



/*
run:

positive

*/

 



answered Jun 27 by avibootz

Related questions

...