我不知道我的代码出错了,而且我要求一些指导,因为我不熟悉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';
}
答案 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;是(或按位):
答案 4 :(得分:0)
您可以使用三元运算符并在一行中进行测试:
function evenOrOdd($number)
{
return 0 === $number % 2 ? 'even' : 'odd';
}