Equality comparisons and sameness
type comparison tables
* Javascript 정오 비교표 (정오표)
https://dorey.github.io/JavaScript-Equality-Table/
https://developer.mozilla.org/ko/docs/Web/JavaScript/Equality_comparisons_and_sameness
* php 비교표
https://phpcheatsheets.com/compare/
https://www.php.net/manual/en/types.comparisons.php
https://www.php.net/manual/en/language.operators.comparison.php
//-----------------------------------------------------------------------------
is_countable($v) ? | |||||
$v | isset() | is_null() | empty() | count() | sizeof() |
NULL | FALSE | TRUE | TRUE | 0 | 0 |
'' | TRUE | FALSE | TRUE | 0 | 0 |
' ' | TRUE | FALSE | FALSE | 0 | 0 |
0 | TRUE | FALSE | TRUE | 0 | 0 |
'0' | TRUE | FALSE | TRUE | 0 | 0 |
0 | TRUE | FALSE | TRUE | 0 | 0 |
'\0' | TRUE | FALSE | FALSE | 0 | 0 |
1 | TRUE | FALSE | FALSE | 0 | 0 |
FALSE | TRUE | FALSE | TRUE | 0 | 0 |
TRUE | TRUE | FALSE | FALSE | 0 | 0 |
[] | TRUE | FALSE | TRUE | 0 | 0 |
//----------------------------------------
isset(), empty(), is_null() 함수 실행 결과
www.virendrachandak.com/techtalk/php-isset-vs-empty-vs-is_null/
Value of variable ($var) | isset($var) | empty($var) | is_null($var) |
“” (an empty string) | bool(true) | bool(true) | |
” ” (space) | bool(true) | ||
FALSE | bool(true) | bool(true) | |
TRUE | bool(true) | ||
array() (an empty array) | bool(true) | bool(true) | |
NULL | bool(true) | bool(true) | |
“0” (0 as a string) | bool(true) | bool(true) | |
0 (0 as an integer) | bool(true) | bool(true) | |
0.0 (0 as a float) | bool(true) | bool(true) | |
var $var; (a variable declared, but without a value) | bool(true) | bool(true) | |
NULL byte (“\ 0”) | bool(true) |
//=================
< 삼항 연산자 >
[ PHP ]
* 다음은 2개는 동일한 출력값
echo ( isset($val) ? $val : null ); // 삼항 연산자(Ternary Operator )
echo ( $val ?? null ); // NULL 병합 연산자(Null Coalescing Operator)
- $val 이 undefined 상태이면 null
- $val=0 이면 0을 출력
//========
echo ( isset($val) ? : null );//주의!! 권장하지 않음
- $val=0 이면 1을 출력
//-----------------------------------------------------------------------------
* 3항 연산자 (Ternary Operator)
cond ? expr1 : expr2
$user = load_user() ? load_user() : false;
- 줄임
$user = load_user() ?: false;
//-------------------------------------
* null 병합 연산자 (Null Coalescing Operator) :
result = variable ?? expression
- variable이 선언되지 않았거나, null 경우 expression 선택
$result = isset($_GET['value']) ? $_GET['value'] : 'foo';
$result = $_GET['value'] ?? 'foo';
//-------------------------------------
* Null 병합 할당 연산자 (Null Coalescing Assignment operator) : php 7.4 이상
null 병합 연산자를 더 줄임
??=
$value = $value ?? 'foo';
$value ??= 'foo';
//-----------------------------------------------------------------------------
//==============
[ Javascript ]
조건부 삼항 연산자(conditional ternary operator)
condition ? exprIfTrue : exprIfFalse
주의! php 처럼
condition ? : exprIfFalse
줄임을 허용하지 않음
대체 : || 이용
condition || exprIfFalse
var ret = ret2 = false;
// var ret = ret2 = true;
ret = ret ? ret : 'ifFalse';
ret2 = ret2 || 'ifFalse';
console.log(ret, ret2);
'Code > Web' 카테고리의 다른 글
AWS S3 사이트에 HTTPS 적용 방법 (0) | 2019.07.08 |
---|---|
[AWS] URL 주소 리다이렉트 하는 방법 (0) | 2019.05.28 |
파이어폭스 부가기능 에러 해결방법 (0) | 2019.05.05 |
Sass 사용법 (0) | 2019.04.12 |
WebPack 사용법 (0) | 2019.04.12 |