在PHP中找出一个数字/变量是奇数还是偶数的最简单最基本的方法是什么? 这和mod有关吗?

我试过一些剧本,但是…谷歌目前没有发送。


当前回答

(bool)($number & 1)

or

(bool)(~ $number & 1)

其他回答

$before = microtime(true);

$n = 1000;  
$numbers = range(1,$n);

$cube_numbers = array_map('cube',$numbers);

function cube($n){      
    $msg ='even';       
    if($n%2 !=0){
        $msg = 'odd';
    }               
    return "The Number is $n is ".$msg;
}

foreach($cube_numbers as $cube){
    echo $cube . "<br/>";
}

$after = microtime(true);

echo $after-$before. 'seconds';

PHP自动将null和空字符串转换为0。对模也是这样。因此,代码将

$number % 2 == 0 or !($number & 1)

$number = "或$number = null 结果为true。 因此,我对它进行了更广泛的测试:

function testEven($pArg){
    if(is_int($pArg) === true){
        $p = ($pArg % 2);
        if($p === 0){
            print "The input '".$pArg."' is even.<br>";
        }else{
            print "The input '".$pArg."' is odd.<br>";
        }
    }else{
        print "The input '".$pArg."' is not a number.<br>";
    }
}

The print is there for testing purposes, hence in practice it becomes:
function testEven($pArg){
    if(is_int($pArg)=== true){
        return $pArg%2;
    }
    return false;
}

这个函数对于任何奇数返回1,对于任何偶数返回0,当它不是数字时返回false。我总是写=== true或=== false来让我自己(和其他程序员)知道测试是预期的。

两个简单的位函数,返回0表示False,返回1表示True。

# is_odd: 1 for odd , 0 for even
odd = number & 1

# is_even: 1 for even , 0 for odd
even = number & 1 ^ 1

$number %2 = 1如果是奇数…所以不用用not even…

$number = 27;

if ($number % 2 == 1) {
  print "It's odd";
}

你认为mod是个不错的开始,这是对的。下面是一个表达式,如果$number为偶数则返回true,如果为奇数则返回false:

$number % 2 == 0

适用于所有integerPHP值,参见算术操作符sphp。

例子:

$number = 20;
if ($number % 2 == 0) {
  print "It's even";
}

输出:

它甚至