PHP 개발에서 변수가 부울 값인지를 결정하는 것이 매우 일반적입니다. IS_BOOL () 함수는 변수가 부울 유형인지 여부를 감지하는 데 사용됩니다. 그러나 많은 초보자와 경험이 풍부한 개발자조차도 IS_BOOL ()을 사용할 때 일반적인 실수를 저지르고 프로그램 논리에 문제가 발생합니다. 이 기사는 IS_BOOL () 사용에 대한 오류가 발생하기 쉬운 것을 자세히 설명하고 부울 가치를보다 정확하게 판단하는 데 도움이되는 솔루션을 제공합니다.
IS_BOOL ()는 변수 유형이 부울 유형 ( true 또는 false )인지 확인하기 위해 PHP의 내장 함수입니다. 구문은 매우 간단합니다.
is_bool(mixed $var): bool
$ var가 부울 인 경우 함수는 true를 반환하고 그렇지 않으면 거짓입니다 .
많은 개발자들은 IF ($ var == true)를 사용하여 변수가 true 인지를 결정하는 데 익숙하지만,이 쓰기 방법이 $ var가 부울 유형이라는 것을 보장하지는 않는다는 것을 무시합니다. 이는 숫자, 문자열 또는 배열 일 수 있습니다.
예:
$var = 1; // 정수1
if ($var == true) {
echo "예true";
} else {
echo "不예true";
}
출력은 "예 예"이지만 실제로 $ var는 부울이 아닌 정수입니다.
그리고 is_bool ()를 사용하는 경우 :
if (is_bool($var)) {
echo "예부울 유형";
} else {
echo "不예부울 유형";
}
출력은 "부울 유형이 아님"이며, 이는 가변 유형을 정확하게 판단하는 방법입니다.
is_bool ()은 유형 만 감지하고 변수가 true인지 false인지 확인하지 않습니다. 예를 들어:
$var = false;
var_dump(is_bool($var)); // true
var_dump($var == false); // true
$var = 0;
var_dump(is_bool($var)); // false
var_dump($var == false); // true
0 은 부울 유형이 아니지만 조건부 판단에서 거짓으로 간주됩니다. IS_BOOL ()는 부울이 아닌 사람의 "거짓 가치"를 부울로 잘못 판단하지 않습니다.
변수가 부울 유형인지 확인 해야하는 경우 is_bool ()을 사용하는 가장 안전한 방법입니다.
$input = true;
if (is_bool($input)) {
echo "变量예부울 유형";
} else {
echo "变量不예부울 유형";
}
변수가 true인지 false인지 확인하려면 캐스팅을 사용하거나 직접 판단해야합니다.
if ((bool)$input) {
echo "변수는 참입니다";
} else {
echo "변수는 false입니다";
}
때로는 URL 매개 변수에서 값을 얻는 것과 같은 외부 입력으로부터 데이터를 수신하게됩니다.
$flag = $_GET['flag']; // 假设输入的예 "false"
if (is_bool($flag)) {
echo "부울 유형";
} else {
echo "不예부울 유형";
}
전달 된 내용에 관계없이 $ _get 의 값은 문자열 유형이며 여기서 부울으로 판단되지 않습니다. 유형을 먼저 변환하는 올바른 방법 :
$flag = filter_var($_GET['flag'], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
if (is_bool($flag)) {
echo "成功解析为부울 유형";
} else {
echo "无法解析为부울 유형";
}
이 예제는 filter_var를 사용하여 문자열 "true", "false"등을 부울 유형으로 변환합니다.
완전한 샘플 코드 :
<?php
$url = "http://gitbox.net/api/check";
$var1 = true;
$var2 = "true";
$var3 = 0;
function checkBoolean($var) {
if (is_bool($var)) {
echo "变量예부울 유형\n";
} else {
echo "变量不예부울 유형\n";
}
}
checkBoolean($var1); // 变量예부울 유형
checkBoolean($var2); // 变量不예부울 유형
checkBoolean($var3); // 变量不예부울 유형
// ~에서 URL 매개 변수를 얻고 확인하십시오
$input = filter_var($_GET['flag'] ?? null, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
if (is_bool($input)) {
echo "成功解析为부울 유형";
} else {
echo "无法解析为부울 유형";
}
?>
IS_BOOL ()은 변수가 부울 유형인지 여부를 결정하는 강력한 도구이지만 변수가 사실인지 아닌지를 판단하는 것으로 오해하지는 않습니다. 유형에만 초점을 맞추고, 비-불리한 "진정한 가치"또는 "false value"는 잘못 판단되지 않습니다. 이러한 세부 사항을 이해하면 프로그램 논리 오류를 피하고 코드 품질을 향상시키는 데 도움이 될 수 있습니다.
문자열과 숫자에서 부울로 변환 할 필요가 있다면 Filter_var가 권장되며, 더 똑똑하고 안전합니다.