2016-12-31 8 views
-4

弱いvar型のphpで誤検出をチェックする(2つの値を比較する)良い方法はありますか?phpで偽陽性のジャグリングをチェックする良い方法はありますか?

0 ==:真、偽正確

4 == 1:真、偽正確

0 ==:真、偽正確

0 == 0:真、偽正確

0 ==:真、正確な偽

0 ==:真、正確な偽

1 == 01:真、正確な偽

==:真、正確な偽

3 == 3匹の犬:真、正確な偽

100 == 1E2:真、正確な偽

100 == 100:真、偽正確

ABC == 1:真、偽正確

123 == 123:真、偽正確

123 == 0123:真、偽正確

<?php 
     function is_equal($value1, $value2, $exact=0) { 
      $output = "{$value1} == {$value2}: "; 
      switch($exact) { 
       case 0: 
        if ($value1 == $value2) { 
         $output .= "true, "; 
        } else { 
         $output .= "false, "; 
        } //break; 
       case 1: 
        if ($value1 === $value2) { 
         $output .= "\texact true<br>"; 
        } else { 
         $output .= "\texact false<br>"; 
        } break; 
      } 
      return $output; 
     } //endof is_equal 
     echo is_equal(0,false); 
     echo is_equal(4,true); 
     echo is_equal(0,null); 
     echo is_equal(0,"0"); 
     echo is_equal(0,""); 
     echo is_equal(0,"a"); 
     echo is_equal("1","01"); 
     echo is_equal("",null); 
     echo is_equal(3,"3 dogs"); 
     echo is_equal(100,"1e2"); 
     echo is_equal(100,100.00); 
     echo is_equal("abc",true); 
     echo is_equal(123," 123"); 
     echo is_equal(123,"+0123"); 

    ?> 
+1

便利なテーブルがここにあります:http://php.net/manual/en/types.comparisons.php [3つの異なるイコール]の – Federkun

+2

可能な複製(のhttp:/ /stackoverflow.com/questions/2063480/the-3-different-equals) –

答えて

1

PHPを比較する前に互換性のある型の値に変換されます。

タイプと値の両方を比較するには、トリプルイコールを使用します。

1 == "1" // true 
1 === "1" // false 

Comparison operatorsドキュメントページ

関連する問題