php에서 settype () 함수는 변수를 지정된 데이터 유형으로 변환하는 데 사용됩니다. 변수의 유형을 변경할뿐만 아니라 변수 자체를 직접 수정합니다. 이 기사는 변수를 bool 값으로 변환 할 때 settype () 의 특정 성능에 중점을 둘 것입니다.
settype () 의 기본 사용량은 다음과 같습니다.
settype(mixed &$var, string $type): bool
$ var 는 변환 해야하는 유형의 변수이며 함수는이 변수를 직접 수정합니다.
$ 유형은 "bool" , "int" , "string" 등과 같은 대상 유형입니다.
반환 값은 전환이 성공했는지 여부를 나타내는 부울 값입니다.
settype () 가 변수를 부울 값으로 변환 할 때 변환 규칙은 PHP의 내장 부울 전환 규칙과 일치합니다.
"false"값은 다음을 포함하여 False 로 변환됩니다 .
부울 가치 거짓
정수 값 0
부동 소수점 값 0.0
빈 문자열 "" " 및 문자열 "0 "
빈 배열 []
널
다른 모든 값은 true 로 변환됩니다
샘플 코드 :
$values = [0, 1, -1, "", "0", "hello", [], [1], null, false, true];
foreach ($values as $val) {
settype($val, "bool");
var_dump($val);
}
출력 결과 :
bool(false)
bool(true)
bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)
bool(true)
settype ()는 전달 된 변수를 직접 수정합니다. 원래 값을 유지하려면 먼저 변수를 복사해야합니다.
$original = "0";
$copy = $original;
settype($copy, "bool");
var_dump($original); // string(1) "0"
var_dump($copy); // bool(false)
객체 또는 자원이 전달되면 부울로 변환 할 때 PHP의 정상 변환도 따릅니다.
자원과 객체는 일반적으로 무효 또는 빈 객체가 아닌 한 TRUE 로 변환됩니다.
settype ()는 객체를 부울로 직접 변환 할 수 없으며 결과는 예상대로 아닐 수 있습니다.
대부분의 경우 settype () 가 성공하지만 일부 지원되지 않는 유형 변환은 False를 반환합니다.
$obj = new stdClass();
$result = settype($obj, "bool"); // 반품 false,변환 할 수 없습니다
var_dump($result);
특징 | 설명 |
---|---|
변경량을 직접 수정하십시오 | settype ()는 변수 자체를 전달하는 변수 자체를 변경합니다 |
PHP 규칙에 따라 부울 값을 변환하십시오 | 특정 값 (예 : 0, 빈 문자열, NULL 등) 만 거짓이 되고 다른 값은 사실 입니다. |
복잡한 개체를 변환 할 수 없습니다 | 객체를 부울로 직접 변환 할 수 없으면 변환이 실패하고 False를 반환합니다. |
성공적인 전환 상태로 돌아갑니다 | 전환이 성공했는지 여부를 나타내는 부울 값을 반환합니다. |
이러한 동작 및 한계를 이해하면 settype ()를 사용하여 부울을 변환 할 때 변수 유형 및 프로그램 논리를보다 정확하게 제어하는 데 도움이 될 수 있습니다.