0

さて、私はこのコードを持っています:

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

スクリプトに数値を入力すると、出力は「False」になりますが、$_GET、$_POST などを使用すると、数値を引用符で囲んでも「True」が返されます。

どうしたの?どんな助けでも大歓迎です!

4

2 に答える 2

3

$_GETとの要素$_POSTは文字列です。docsを読むと、各文字が序数に変換され、ビットごとの演算子でヒットされ、文字に変換されます。

intval()最初に値を呼び出す必要があります。

于 2012-09-20T01:45:11.650 に答える
2

それらをintにキャストする必要があります。または&、2つの文字列を使用しています。

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