세 가지 연산자의 세계에 오신 것을 환영합니다.

입문


세 가지 연산자를 사용합니까?
며칠 전 후배@miriwo가 기쁜 세 가지 계산을 깨우쳐 기쁜 일이라고 집필했다.
PHP "?:"의 정체를 알고 상큼하면
응, 제목만 보면 엘비스 산수에 각성한 건지 궁금해.
그것은 매우 편리하다.

삼원 연산자


우리 예를 하나 봅시다.

전재방: https://chiicomi.com/smp/r_news_detail?id=19e92c3c-0b86-11e6-8bd0-a0369f7b8e6e
이것은 우리 제프 연합시 원지바의 마스코트 제비와 유니티다.
(분명 지바) 아키타의 쌍둥이 강아지는 캐릭터 디자인상 크기와 등번호를 제외하고는 구분할 수 없다.
어느 정도 제프 사포라면 "정확한 건 제피, 장난꾸러기 건 유니티", "귀가 바삭한 건 제피, 동그란 귀는 유니티"같은 말을 할 거예요.다른 사포에게 제프사포는 머리가 우습다고 여겨져 들리지 않기 때문이다.
그래서 만약 개의 등번호가 2이라면 나는 자바스크립트로 제비를 써서 2가 아닌 유니티를 name 코드에 대입시켰다.
const name = (dog.uniform_number === 2) ? 'Jefy' : 'Unity';
? 왼쪽은 판정 조건, 오른쪽은 true 판정 시 값, 칸막이 : 오른쪽은 false 판정 시 값.
가끔씩 세 가지 산수 부정파가 이걸 쓰면 이런 느낌이야.
const name = '';

if(dog.uniform_number === 2){
    name = 'Jefy';
} else {
    name = 'Unity';
}
길다...
중요한 것은 이는if문이 아니라 공식으로 간단하게 표현된 세 가지 연산자이다.
사실 본명은'조건 연산자'라고 한다.
세 가지 연산자는 많은 언어에서 실현된다.

중첩된 삼원 연산자


너무 많이 할 수는 없지만, 세 가지 연산자 중첩 (중첩) 은 쓸 수 있다.
우리 예를 하나 봅시다.

사실 제프의 마스코트는 제비와 유니티의 수컷 쌍둥이뿐만 아니라 어딘지 모르게 작은 미라는 하얀 잡종 암캐도 있다.사진 맨 오른쪽에 있는 애죠?
그나저나 제비와 유니티는 매년 시계를 사는 일반 지지자인 것 같다. 모두 제프 연합 주식회사의 직원이다.
그런 설정은 물론이고 여러분의 등번호는 지지자 번호로 불리는 12번입니다.그러니까 이런 느낌이 든다는 거야.
const name = (dog.uniform_number === 2) ? 'Jefy' : (dog.uniform_number === 9) ? 'Unity' : 'Mina-chang';
어때요?보기 흉해서 대머리처럼 보인다.
보기 쉬운 기교로 기호 앞에서 줄을 바꾸다.
외국인이 쓴 코드에서 자주 볼 수 있겠지.
const name = (dog.uniform_number === 2) 
    ? 'Jefy'
    : (dog.uniform_number === 9)
        ? 'Unity'
        : 'Mina-chang';
다만, 이 중첩된 세 가지 연산자는 PHP가 왜 동작이 다른지 모르겠다.왜 그는 오른쪽에서 평가했는지 몰라서 괄호로 이렇게 쓰지 않는다.
$name = (dog.uniform_number === 2) 
    ? 'Jefy'
    : ( (dog.uniform_number === 9)
        ? 'Unity'
        : 'Mina-chang');
불모감이 대단한데..
※ 추적
@rana_kualu 선생님께서 저에게 주신 평어는 괄호를 사용하지 않는 세 가지 연산자의 삽입은 PHP7.4부터 추천하지 않고 PHP8부터 잘못된 것입니다.
참조: [PHP8.0] PHP의 세 가지 연산자는 다른 언어의 실현에 더욱 가깝다

끝내다


세 가지 산자의 특수한 묘사법으로 엘비스 산자와 null이 합체한 산자는 다음에 쓴다.
그럼 안녕히 계세요!Enjoy, Summer!!

좋은 웹페이지 즐겨찾기