if ($ variable)은 정확히 어떻게 작동합니까?
중복 가능성 :
PHP의 if 문 관련
PHP 스크립트에서-이와 같은 if 문은 무엇을 확인합니까?
<?php if($variable){ // code to be executed } ?>
스크립트에서 여러 번 사용되는 것을 보았고 이제 "찾아 오는"것이 무엇인지 알고 싶습니다. 누락 된 것이 없습니다. 그것은 단지 if 문 안에있는 평범한 변수 일뿐입니다 ... 나는 이것에 대한 결과를 어디서도 찾을 수 없었습니다. 그래서 분명히 이것을 게시하는 것은 어리석은 것처럼 보일 것입니다.
구성 if ($variable)
은 $variable
"진정한"값으로 평가 되는지 확인하기 위해 테스트 합니다. boolean 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
부울 로 변환 되고 해당 변환의 결과에 따라 작동합니다.
자세한 정보는 부울 문서를 참조하십시오 .
값을 부울로 명시 적으로 변환하려면 (bool) 또는 (boolean) 캐스트를 사용하십시오. 그러나 연산자 , 함수 또는 제어 구조에 부울 인수가 필요한 경우 값이 자동으로 변환 되기 때문에 대부분의 경우 캐스트가 필요하지 않습니다.
다음 목록 false
은 PHP에서 평가할 사항을 설명합니다 .
- 부울 FALSE 자체
- 정수 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
. 평가되는 몇 가지 일반 값이 있습니다 . PHP 유형 비교표를true
참조하십시오 .
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"
- 요소가없는 배열
- 멤버 변수가없는 객체 (PHP 4 만 해당)
- 특수 유형 NULL (설정되지 않은 변수 포함)
- 빈 태그에서 생성 된 SimpleXML 객체
다른 모든 값은 참이어야합니다. PHP Booleans 매뉴얼에 더 많은 정보가 있습니다 .
Try looking at this old extended "php truth table" to get your head around all the various potholes waiting to burst your tyres. When starting out be as explicit as you can with any comparison operator that fork your code. Try and test against things being identical rather that equal to.
It depends entirely on the value type of the object that you are checking against. In PHP each object type has a certain value that will return false if checked against. The explanation of these can be found here: http://php.net/manual/en/language.types.boolean.php Some values that evaluate to false are
float: 0.0
int: 0
boolean: false
string: ''
array: [] (empty)
object: object has 0 properties / is empty
NULL
Its a bit different from most other languages but once you get used to it it can be very handy. This is why you may see a lot of statements such as
$result = mysqli_multi_query($query) or die('Could not execute query');
A function in PHP need only return a value type that evaluates to false for something like this to work. The OR operator in PHP will not evaluated its second argument IF the first argument is true (as regardless of the second argument's output, the or statement will still pass) and lines like this will attempt to call a query and assign the result to $result. If the query fails and the function returns a false value, then the thread is killed and 'Could not execute query' is printed.
if a function successfully runs (true) or a variable exists (true) boolean
the if statement will continue. Otherwise it will be ignored
참고URL : https://stackoverflow.com/questions/6693876/how-exactly-does-ifvariable-work
'IT Share you' 카테고리의 다른 글
가격 변경을 통해 프로그래밍 방식으로 장바구니에 제품 추가 (0) | 2020.12.08 |
---|---|
jQuery DataGrid 플러그인을 선택 하시겠습니까? (0) | 2020.12.08 |
자바 스크립트로 div에 img 요소 추가 (0) | 2020.12.08 |
Git에서 '--no-ff'병합 옵션을 사용하는 경우 (0) | 2020.12.08 |
PHP Curl 라이브러리를 사용하는 영구 / 유지 HTTP? (0) | 2020.12.08 |