0

好的,所以我有这个代码:

<?php
$p = 65536;
$p2 = 33554432;
if($p & $p2){
echo "True";
}else{
echo "False";
}
?>

好吧,如果我将数字放在脚本中,则输出为“False”,但是当我使用 $_GET、$_POST 等时,即使我将数字放在引号中,它也会返回“True”。

有什么问题?任何帮助表示赞赏!

4

2 回答 2

3

$_GET和的元素$_POST是字符串。如果您阅读文档,它将每个字符转换为其序号位置,使用按位运算符命中它们,然后转换回字符。

您应该首先调用intval()这些值。

于 2012-09-20T01:45:11.650 回答
2

您需要将它们转换为 int,或者您正在&使用两个字符串。

$p = (int)$_GET['p'];
$p2 = (int)$_GET['p2'];
if ($p & $p2) {
  // ...
于 2012-09-20T01:44:51.110 回答