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;
}
16 回答
你是正确的认为mod是一个很好的起点 . 这是一个表达式,如果
$number
是偶数则返回true,如果是奇数则返回false:适用于每个integerPHP值,请参阅Arithmetic OperatorsPHP .
Example:
输出:
另一种选择是简单的位检查 .
例如:
是的使用mod
另一种选择是检查最后一位数字是否为偶数:
或者为了加快速度,请使用
isset()
而不是array_search
:或者使它成为 more faster ( beats mod operator at times ):
这是time test作为我的发现的证明 .
虽然所有答案都是正确的,但一行中的简单解决方案是:
之一:
要么:
效果很好 .
要么
我做了一些测试,发现在mod,
is_int
和&
-operator之间,mod是最快的,紧跟着&-operator .is_int
比mod慢近4倍 .我使用以下代码进行测试:
我得到的结果非常一致 . 这是一个示例:
所有偶数除以2将得到整数
PHP将null和空字符串自动转换为零 . 这也发生在模数上 . 因此代码
值$ number =''或$ number = null结果为true . 我测试它有点扩展:
对于任何奇数,此函数返回1,对于任何偶数,此函数返回0;如果不是数字,则返回false . 我总是写=== true或=== false让我自己(和其他程序员)知道测试是按照预期的 .
零是偶数 . 换句话说,它的奇偶校验 - 整数的质量是偶数或奇数 - 是偶数 . 证明零是偶数的最简单方法是检查它是否符合"even"的定义:它是2的整数倍,特别是0×2 . 因此,零共享所有表征偶数的属性:0可以整除如图2所示,0在两侧被奇数包围,0是整数(0)与其自身的和,并且一组0个对象可以被分成两个相等的集合 . 来自http://en.wikipedia.org/wiki/Parity_of_zero
我假设已经有一个柜台 . 在$ i中,在循环结束时递增,这适用于我使用简写查询 .
那么这是做什么的呢,它会查询我们正在制作的语句本质上$ i是奇数,取决于它的真或假将决定返回什么 . 返回的值填充我们的变量$ row_pos
我对它的使用是将它放在foreach循环中,就在我需要它之前,这使得它成为一个非常有效的一个衬里给我适当的类名,这是因为我已经有一个计数器用于id的使用后来在该计划中 . 这是我将如何使用这部分的简短示例 .
这给了我每行的奇数和偶数类,所以我可以使用正确的类并在页面上划分打印结果 .
我使用的完整示例注意id已经应用了计数器,并且类具有应用于它的奇数/偶数结果:
总之,这给了我一个非常简单的方法来创建一个漂亮的表 .
此代码检查数字是奇数还是甚至是PHP . 在示例
$a
是2
,你得到偶数 . 如果您需要奇数,则更改$a
值试试这个,
用#Input字段试试这个