현재 위치: > 최신 기사 목록> 부울 변환의 settype () 성능

부울 변환의 settype () 성능

gitbox 2025-05-27

php에서 settype () 함수는 변수를 지정된 데이터 유형으로 변환하는 데 사용됩니다. 변수의 유형을 변경할뿐만 아니라 변수 자체를 직접 수정합니다. 이 기사는 변수를 bool 값으로 변환 할 때 settype () 의 특정 성능에 중점을 둘 것입니다.


1. settype () 함수 소개

settype () 의 기본 사용량은 다음과 같습니다.

 settype(mixed &$var, string $type): bool
  • $ var 는 변환 해야하는 유형의 변수이며 함수는이 변수를 직접 수정합니다.

  • $ 유형은 "bool" , "int" , "string" 등과 같은 대상 유형입니다.

  • 반환 값은 전환이 성공했는지 여부를 나타내는 부울 값입니다.


2. 부울로 변환 될 때의 성능

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)

3. 구체적인 예방 조치

3.1 변수 자체가 수정됩니다

settype ()는 전달 된 변수를 직접 수정합니다. 원래 값을 유지하려면 먼저 변수를 복사해야합니다.

 $original = "0";
$copy = $original;

settype($copy, "bool");

var_dump($original); // string(1) "0"
var_dump($copy);     // bool(false)

3.2 성능 복잡한 유형에 입력 할 때

객체 또는 자원이 전달되면 부울로 변환 할 때 PHP의 정상 변환도 따릅니다.

  • 자원과 객체는 일반적으로 무효 또는 빈 객체가 아닌 한 TRUE 로 변환됩니다.

  • settype ()는 객체를 부울로 직접 변환 할 수 없으며 결과는 예상대로 아닐 수 있습니다.

3.3 반환 값 변환이 실패한 경우

대부분의 경우 settype () 가 성공하지만 일부 지원되지 않는 유형 변환은 False를 반환합니다.

 $obj = new stdClass();
$result = settype($obj, "bool"); // 반품 false,변환 할 수 없습니다
var_dump($result);

4. 요약

특징 설명
변경량을 직접 수정하십시오 settype ()는 변수 자체를 전달하는 변수 자체를 변경합니다
PHP 규칙에 따라 부울 값을 변환하십시오 특정 값 (예 : 0, 빈 문자열, NULL 등) 만 거짓이 되고 다른 값은 사실 입니다.
복잡한 개체를 변환 할 수 없습니다 객체를 부울로 직접 변환 할 수 없으면 변환이 실패하고 False를 반환합니다.
성공적인 전환 상태로 돌아갑니다 전환이 성공했는지 여부를 나타내는 부울 값을 반환합니다.

이러한 동작 및 한계를 이해하면 settype ()를 사용하여 부울을 변환 할 때 변수 유형 및 프로그램 논리를보다 정확하게 제어하는 ​​데 도움이 될 수 있습니다.