我正在审查合作伙伴的 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;
我正在调查这个指令,发现:
只有当字符串为空或包含单个字符 0 时,字符串才会被转换为 false。如果它包含任何其他数据(甚至多个零),它会被转换为 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;
我的意思是,我不明白,也许它有更深层次的含义,我没有看到这个。
这就是为什么我问你的意见。