PHP:声明一个值是奇数还是偶数整数

时间:2017-08-07 17:49:56

标签: php if-statement

我不知道我的代码出错了,而且我要求一些指导,因为我不熟悉PHP。

我正在尝试执行If else语句,如果随机整数是奇数或偶数,则会显示。当我运行代码时,它会一直显示'数字是奇数'或者没什么,我不知道为什么。任何指导都将非常感谢。

$RandomValue = rand(0, 10);
$OddValues = (1 || 3 || 5 || 7 || 9);
$EvenValues = (0 || 2 || 4 || 6 || 8 || 10);
if($RandomValue == $OddValues) {
    echo $RandomValue, ' Number is odd';
} else {
    if($RandomValue == $EvenValues)
        echo $RandomValue, ' Number is even';
}

5 个答案:

答案 0 :(得分:4)

有一种更简单的方法可以做到这一点。在php中使用modulo运算符,它被编写为%。如果没有余数则模数运算符基本上返回0,如果有剩余则返回余数。在这种情况下,你只需要除以2,看看是否还有什么,这就是模数在这里做的事情。所以它唯一要返回的是0或1。

$x = 3;
if($x % 2 == 0) { //number is even}
else { //number is odd }

答案 1 :(得分:3)

检查它

if ($RandomValue % 2 === 0) {
   echo "$RandomValue is even";
} else {
   echo "$RandomValue is odd";
}

供参考,见:

答案 2 :(得分:2)

使用Modulo。

if($RandomValue % 2 === 0){ echo $RandomValue, ' Number is even'; }

答案 3 :(得分:2)

您还可以使用按位和&

 $is_odd = $x & 1;

比如这个

$nums = [1,2,3,4,5,6,7,8,9,10];

foreach( $nums as $x ){
   $is_odd = $x & 1;
   echo $is_odd ? 'ODD' : 'EVEN';
   echo "\n";
}

输出

ODD
EVEN
ODD
EVEN
ODD
EVEN
ODD
EVEN
ODD
EVEN

你可以在这里测试一下

http://sandbox.onlinephpfunctions.com/code/d47ab3970f24038afb28876b212a6f020eb0a0aa

要完整回答你的问题

$RandomValue = rand(0, 10);

if($RandomValue & 1) {
   echo $RandomValue. ' Number is odd';
} else {
    echo $RandomValue. ' Number is even';
}

<强> PS 即可。你也有一个逗号而不是.这里

echo $RandomValue, ' Number is odd';

http://sandbox.onlinephpfunctions.com/code/e2573a5dfe0e5aec6c0bfac3ce62c6788b070641

事实上,我们可以将这一点再简化为2行

$RandomValue = rand(0, 10);
echo $RandomValue. ' Number is '.($RandomValue & 1 ? 'even' : 'odd');

哦,如果你不确定&&#34;单身和&#34;是(或按位):

http://php.net/manual/en/language.operators.bitwise.php

答案 4 :(得分:0)

您可以使用三元运算符并在一行中进行测试:

function evenOrOdd($number) 
{
   return 0 === $number % 2 ? 'even' : 'odd';
}