3

私はパートナーのphpコードを見直していますが、次のようなものです:

function query_db($form)
{
   $result = (int)false;    
   try{
    $sqlQuery = " SELECT id_user, id_access, name, email, status FROM users ";
    $sqlQuery .= " WHERE id_access> 0 ";
    if($form->get("limit")){
       $sqlQuery .= " LIMIT ".$form->get("start")." , ".$form->get("registry");
    }           
        $query = $this->db->query($sqlQuery);
    return $query;
   } catch (Exception $e) { 
    $result = (int)false;
   }
    return $result;
}

だから最初に彼は$result = (int)false;

この指示を調査していたところ、次のことがわかりました。

文字列が空であるか、1 文字の 0 が含まれている場合にのみ、文字列は false に変換されます。その他のデータ (複数のゼロを含む) が含まれている場合は、true に変換されます。

数値または文字列に変換すると、ブール値は true の場合は 1 になり、そうでない場合は 0 になります。

質問に戻ります。

echo 0 + 1; // 1
echo false + 1; // 1
echo 0  > -1; // true
echo false  > -1; // false
echo (int)false > -1; // true

では、なぜ彼がそれを使用する代わりにキャストするのか $result = 0;、私にはわかりません。おそらくそれにはより深い意味があり、私はこれを見ていません。

だからこそ、あなたの意見をお聞きします。

4

2 に答える 2