codememo

if($variable)는 정확히 어떻게 작동합니까?

tipmemo 2023. 8. 6. 10:08
반응형

if($variable)는 정확히 어떻게 작동합니까?

중복 가능성:
PHP의 if 문에 대해

PHP 스크립트에서 - 이와 같은 if 문은 무엇을 확인합니까?

<?php if($variable){ // code to be executed } ?>  

저는 스크립트에서 사용되는 것을 여러 번 보았는데, 이제는 정말로 "찾는" 것이 무엇인지 알고 싶습니다.누락된 것은 아무것도 없습니다. if 문 안에 있는 단순한 변수일 뿐입니다.저는 이것에 대한 어떤 결과도, 어디에서도 찾을 수 없었기 때문에, 분명히 저는 이것을 게시하는 것이 바보처럼 보일 것입니다.

공사if ($variable)확인하기 위한 테스트$variable모든 "진실" 값으로 평가됩니다. " " 수있 " 이 될 수 .TRUE비어 있지 않거나 NULL이 아닌 값 또는 0이 아닌 숫자입니다.PHP 문서의 부울 평가 목록을 확인합니다.

PHP 설명서에서 다음을 참조하십시오.

var_dump((bool) "");        // bool(false)
var_dump((bool) 1);         // bool(true)
var_dump((bool) -2);        // bool(true)
var_dump((bool) "foo");     // bool(true)
var_dump((bool) 2.3e5);     // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)

다음과 같은 점에 유의하십시오.if ($variable)변수 또는 배열 키가 초기화되었는지 테스트할 때 사용하는 것은 적합하지 않습니다.변수 또는 배열 키가 아직 존재하지 않으면 다음과 같은 결과를 초래됩니다.E_NOTICE Undefined variable $variable.

가 환하는경을 변환합니다.$variable부울 값으로 변환하고 변환 결과에 따라 작동합니다.

자세한 내용은 부울 문서를 참조하십시오.

값을 부울로 명시적으로 변환하려면 (부울) 또는 (부울) 캐스트를 사용합니다.그러나 연산자, 함수 또는 제어 구조에 부울 인수가 필요한 경우 값이 자동으로 변환되므로 대부분의 경우 캐스트가 필요하지 않습니다.

다음 목록은 평가 대상에 대해 설명합니다.falsePHP:

  • 부울 FALSE 자체
  • 정수 0(0)
  • 플로트 0.0(제로)
  • 빈 문자열 및 "0" 문자열
  • 요소가 0인 배열
  • 멤버 변수가 0인 개체(PHP 4에만 해당)
  • 특수 유형 NULL(설정되지 않은 변수 포함)
  • 빈 태그로 만든 SimpleXML 개체

다른 모든 값은 TRUE로 간주됩니다(모든 리소스 포함).

출처: http://www.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting

는 질에서변내평가다니됩 됩니다.if() 경우위의 됩니다.변수가 설정되지 않은 경우 위의 목록에 따라 false로 평가됩니다.설정되거나 값이 있으면 true로 평가되므로 내부에서 코드를 실행합니다.if()분점.

여부를 확인합니다.$variable로 평가함.true다음을 평가하는 몇 가지 정규 값이 있습니다.truePHP 유형 비교 표를 참조하십시오.

if ( )궁극적으로 다음과 같이 평가되는 모든 표현식을 포함할 수 있습니다.true또는false.

if (true)                  // very direct
if (true == true)          // true == true evaluates to true
if (true || true && true)  // boils down to true

$foo = true;
if ($foo)                  // direct true
if ($foo == true)          // you get the idea...

다음 중 하나라도 거짓으로 간주됩니다(따라서//code to be executed would실행되지 않음)

  • 부울 FALSE 자체
  • 정수 0(0)
  • 플로트 0.0(제로)
  • 빈 문자열 및 "0" 문자열
  • 요소가 0인 배열
  • 멤버 변수가 0인 개체(PHP 4에만 해당)
  • 특수 유형 NULL(설정되지 않은 변수 포함)
  • 빈 태그로 만든 SimpleXML 개체

다른 모든 값은 참이어야 합니다.자세한 내용은 PHP Booleans 매뉴얼을 참조하십시오.

타이어가 터지기를 기다리는 다양한 포트홀을 머리로 둘러볼 수 있도록 오래된 확장된 "php 진실표"를 살펴 보십시오.시작할 때 코드를 포크하는 비교 연산자를 최대한 명시적으로 사용합니다.같은 것이 아니라 같은 것인지 시험해 보세요.

이 값은 확인하려는 개체의 값 유형에 따라 전적으로 달라집니다.PHP에서 각 객체 유형은 체크하면 false를 반환하는 특정 값을 가집니다.에 대한 설명은 여기에서 찾을 수 있습니다: http://php.net/manual/en/language.types.boolean.php 거짓으로 평가되는 일부 값은

플로트: 0.0

int: 0

부울: false

문자열: ''

배열: [](비어 있음)

개체: 개체에 0개의 속성이 있음/비어 있음

NULL

그것은 대부분의 다른 언어들과 조금 다르지만, 익숙해지면 매우 편리할 수 있습니다.이것이 당신이 다음과 같은 진술을 많이 볼 수 있는 이유입니다.

$result = mysqli_multi_query($query) or die('Could not execute query');

PHP의 함수는 이러한 것이 작동하기 위해 false로 평가되는 값 유형만 반환하면 됩니다.PHP의 OR 연산자는 첫 번째 인수가 참이면 두 번째 인수를 평가하지 않으며(두 번째 인수의 출력에 관계없이 또는 문이 여전히 통과함), 이와 같은 행은 쿼리를 호출하고 결과를 $result에 할당하려고 시도합니다.쿼리가 실패하고 함수가 잘못된 값을 반환하면 스레드가 중지되고 '쿼리를 실행할 수 없음'이 인쇄됩니다.

함수가 성공적으로 실행되거나(참) 변수가 존재하는 경우(참)booleanif 문이 계속됩니다.그렇지 않으면 무시됩니다.

언급URL : https://stackoverflow.com/questions/6693876/how-exactly-does-ifvariable-work

반응형