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 |



