PHP에서 이중 (!!) 연산자
이중 not 연산자는 PHP에서 무엇을합니까?
예를 들면 다음과 같습니다.
return !! $row;
위의 코드는 무엇을합니까?
"이중 연산자가 아님"이 아니라 연산자가 두 번 적용 되지 않습니다 . 오른쪽 !
은 피연산자에 관계없이 부울이 됩니다. 그런 다음 왼쪽 !
은 부울을 무효화합니다.
즉, 실제 값 (0이 아닌 숫자, 비어 있지 않은 문자열 및 배열 등의 숫자)의 경우 부울 값을 얻고 TRUE
잘못된 값 (0, 0.0 NULL
,, 빈 문자열 또는 빈 배열)의 경우 부울 값 FALSE
.
다음과 같은 캐스트와 기능적으로 같습니다 boolean
.
return (bool)$row;
bool로 캐스팅하는 것과 동일합니다 (또는 거의 동일합니다-코너 케이스가있을 수 있습니다). 경우 $row
겠습니까 true로 캐스트, 다음 !! $row
도 마찬가지입니다.
그러나 당신이 달성하기를 원한다면 (bool) $row
, 아마도 "흥미로운"표현이 아닌 그냥 그저 사용해야 할 것입니다.)
이 경우 의미 $row
갖는다 truthy의 값을, 그 반환 true
그렇지 false
부울 값으로 변환.
다음은 PHP 문서에서 부울 변환에 대한 표현식 예입니다.
Expression Boolean
$x = ""; FALSE
$x = null; FALSE
var $x; FALSE
$x is undefined FALSE
$x = array(); FALSE
$x = array('a', 'b'); TRUE
$x = false; FALSE
$x = true; TRUE
$x = 1; TRUE
$x = 42; TRUE
$x = 0; FALSE
$x = -1; TRUE
$x = "1"; TRUE
$x = "0"; FALSE
$x = "-1"; TRUE
$x = "php"; TRUE
$x = "true"; TRUE
$x = "false"; TRUE
"not not"은 표현의 결과에 언어가 어떤 진실의 가치를 부여하는지 이해하기위한 많은 언어에서 편리한 방법입니다. 예를 들어, 파이썬에서 :
>>> not not []
False
>>> not not [False]
True
복잡한 값을 "값이 있습니까?"와 같은 값으로 낮추려는 경우에 편리 할 수 있습니다.
더 인간적인, 아마도 더 간단한, 읽을 수없는 방법 :
첫번째 '!' 두 가지 일을합니다 : 값을 부울로 '변환'한 다음 반대의 결과를 출력합니다. 따라서 값이 '거짓'인 경우 true를 제공합니다.
두번째 '!' 첫 번째의 반대를 출력하는 것입니다.
따라서 기본적으로 입력 값은 문자열 일 수 있지만 부울 출력을 원하므로 첫 번째 '!'를 사용하십시오. 이 시점에서 입력 값이 'falsy'일 때 TRUE를 원하면 여기서 멈추고 단일 '!'을 사용하십시오. 그렇지 않으면 입력 값이 'truthy'일 때 TRUE를 원하면 다른 '!'를 추가하십시오.
참고 URL : https://stackoverflow.com/questions/2127260/double-not-operator-in-php
'programing' 카테고리의 다른 글
C ++에서 '재정의'키워드는 무엇에 사용됩니까? (0) | 2020.05.20 |
---|---|
TensorFlow에서 로짓이라는 단어의 의미는 무엇입니까? (0) | 2020.05.20 |
넘친 내용으로 flexbox 스크롤 (0) | 2020.05.20 |
SQL Server Management Studio 2008에서 모든 테이블을 검색하여 문자열 찾기 (0) | 2020.05.19 |
Java에서 ByteBuffer의 사용법은 무엇입니까? (0) | 2020.05.19 |