정상우
hELLO.
정상우
전체 방문자
384,511
오늘
130
어제
1,174
  • hELLO. (121)
    • 컴퓨터과학 (4)
      • 알고리즘 & 자료구조 (4)
    • 언어 & 프레임워크 (63)
      • Go (23)
      • PHP & Laravel (40)
    • 웹 (7)
    • 블록체인 (12)
      • 메인넷 (9)
      • 암호화폐 플랫폼 (3)
    • 포트폴리오 (10)
    • 칼럼 (20)
      • 에세이 (4)
      • 개발자스럽게 살기 (14)
      • 회고 (2)
    • 티스토리 (5)

블로그 메뉴

  • ⚡ 개발자 이력서
  • 🌟 깃허브
  • 💻 강의
  • ✨ 예제코드
  • ⭐ 브런치
  • 태그 클라우드
  • 방명록

공지사항

  • 2차 도메인을 설정했습니다 ✨

인기 글

  • JWT(JSON Web Token)의 개념부⋯
    2021.07.29
    JWT(JSON Web Token)의 개념부⋯
  • 'REST' 를 보다 'RESTful' 하게⋯
    2021.08.14
    'REST' 를 보다 'RESTful' 하게⋯
  • [Laravel] 라라벨 프레임워크⋯
    2021.06.10
    [Laravel] 라라벨 프레임워크⋯
  • 깃허브를 포트폴리오로 쓰려면⋯
    2021.12.25
    깃허브를 포트폴리오로 쓰려면⋯
  • 암호화폐 트레이딩 봇을 만들었⋯
    2021.05.12
    암호화폐 트레이딩 봇을 만들었⋯

태그

  • php
  • go
  • 블록체인
  • 포트폴리오
  • 개발
  • 라라벨
  • 프로그래머스
  • Algorithm
  • 코딩테스트
  • 개발 리뷰

최근 댓글

  • 고맙습니다 ~^^
    정상우
  • 오늘 블로그 만들었는데 검색하⋯
    엥뿌삐
  • 좋은 스킨 정말 감사드립니다.⋯
    이태홍
  • 고맙습니다 ㅎㅎ
    정상우
  • 제가 원하던 최고의 스킨입니다⋯
    _HEON

최근 글

  • 빠르게 성장하는 개발자의 세⋯
    2022.06.08
    빠르게 성장하는 개발자의 세⋯
  • 개발자와 엔지니어, 그 사이에서
    2022.05.10
    개발자와 엔지니어, 그 사이에서
  • 아임포트(Iamport)로 결제기능⋯
    2022.04.03
    아임포트(Iamport)로 결제기능⋯
  • 아임포트(Iamport)로 결제기능⋯
    2022.04.01
    아임포트(Iamport)로 결제기능⋯
  • [Laravel] 카페24 호스팅에 라⋯
    2022.03.29
    [Laravel] 카페24 호스팅에 라⋯

티스토리

hELLO · Designed By 정상우.
정상우

hELLO.

언어 & 프레임워크/PHP & Laravel

PHP: 연산자

2020. 3. 23. 22:07

수학

기본적인 사칙연산, 나머지 연산, 거듭제곱 연산이 있습니다. 이는 각각 +, -, *, /, %, ** 으로 표현됩니다.

2 + 2; // -> 4
17 - 3.5; // -> 13.5
10 / 3; // -> 3.333
6 * 9; // -> 54
4 % 3; // -> 1
2 ** 4; // -> 16

할당

등호를 사용하여 표현하는 연산자로, $count = $count + 1 을 $count += 1 과 같이 단축하여 표현할 수 있고, 또한 변수에 값을 할당할 때도 사용하여 나타냅니다. 이 연산은 =, +=, -=, /=, *=, %=, **=, &=, |=, ^=, <<=, >>= 으로 사용할 수 있습니다.

$message = 'Hello, ';
$message .= 'world';

$message; // -> Hello, world

비트

AND(&), OR(|), XOR(^), NOT(~), Shift(<<, >>) 를 사용할 수 있습니다. 비트 단위 연산이므로 보기 좋게 2진수로 표현했고, AND 는 둘다 1, OR 은 하나라도 1, XOR 은 서로 다른 경우, NOT 은 반전입니다.

$bin = 0b0101; // -> 5

$bin | 0b0100; // -> 0b0101
$bin & 0b0100; // -> 0b0100
$bin ^ 0b0100; // -> 0b0001
$bin << 1; // -> 0b1010
$bin >> 1; // -> 0b0010
~$bin; // -> 0b1010 = -6

비교

두 개의 값을 비교할 때 사용합니다. ==, === 는 같음을, !=, !== 는 같이 않냐고 물어보며, 부등호를 사용하여 크기를 비교합니다. >, >=, <, <= 를 기본적으로 사용합니다.

10 == '10'; // -> true
10 === '10'; // -> false
// 10 <> "10"
10 != '10'; // -> false
10 !== '10'; // -> true
// 'ab' >= 'ac'
'ab' > 'ac'; // -> false
// '6x' <= 20
'6x' < 20; // -> true

우주선

<=> 와 같이 사용하고, 두 개의 값을 비교하되, 같으면 0, 왼쪽이 오른쪽보다 작으면 -1, 크면 1을 반환합니다.

10 <=> 20; // -> -1
10 <=> 10; // -> 0
20 <=> 10; // -> 1

증감

++, -- 를 사용하여 값을 증가시키거나 감소시킵니다. 위치에 따라 전위 연산이 있고 후위 연산이 있으며 --$count 를 전위, $count-- 를 후위라 합니다. 이는 함수 등 다른 것과 함께 쓰일 때 차이를 나타내는데, 후위 연산은 값을 한 박자 늦게 증가/감소시킵니다.

$count = 0;

$count--; // -> 0
$count; // -> -1

논리

두 개의 값에 대해 AND(&&), OR(||), XOR(xor), NOT(!) 을 적용하여 true, false 값을 반환합니다. 느낌은 비트 연산과 비슷하나 그 대상이 Boolean, 또는 그 형태로 변환 될 수 있는 것입니다. 예를 들어 [] ||  'Hello, world' 코드는 true 를 반환합니다.

// true or true
true || true; // -> true
// true and true
true && true; // -> true
true xor false; // -> true
!true; // -> false

NULL

해당 값이 null 인지 물어보고, 아니라면 그대로 하고, 그렇다면 뒤에 있는 값을 반환합니다.

null ?? 'Hello, world'; // -> Hello, world

삼항

항이 세개이기 때문에 삼항 연산자이며 두 번째 항은 생략할 수도 있습니다. ? 이전에는 조건식이 들어오고, 그 뒤에는 조건식이 참일 경우 할 것, : 뒤에는 조건식이 거짓일 때 할 것을 나타냅니다. 다만, 조건식과 참일 떄의 할 것이 동일하다면 생략할 수도 있습니다.

// 'Hello, world' ? 'Hello, world' : 'Bye';
'Hello, world' ?: 'Bye'; // -> Hello, world

문자열

. 를 사용하여 둘 이상의 문자열을 합칠 수 있습니다.

'Hello, ' . 'world'; // -> Hello, world

에러

@ 를 사용하면 발생하는 에러를 무시할 수도 있습니다. 다만 속도가 느리기 때문에 비추천입니다. 아래의 코드에서는 MESSAGE 라는 상수가 없으나, 사용하고 있어 에러가 발생하는데, 여기서 @ 를 사용하여 무시했습니다.

function foo2()
{
    MESSAGE;
}

@foo2();

연산자 우선순위

다른 언어와 마찬가지로 연산자의 우선순위가 있으며, 여러개의 연산자가 함께 쓰일 경우 먼저 동작하는 연산자가 있습니다. 비교 연산자가 논리 연산자보다 우선순위가 높습니다. 따라서 10 < 20, 10 > 20 을 먼저하고 논리연산을 진행합니다.

true && 10 < 20 == true && 10 > 20;

더 읽을거리

PHP: 조건문 (if, switch)

https://www.inflearn.com/course/php7-reboot

https://www.inflearn.com/course/php7-oop

PHP 카테고리 목차 및 문서 정리

2020년, PHP 언어가 가지는 의미

https://www.php.net/manual/en/

    '언어 & 프레임워크/PHP & Laravel' 카테고리의 다른 글
    • PHP: 반복문 (for, while)
    • PHP: 조건문 (if, switch)
    • PHP: 상수 (매직상수)
    • PHP: 변수 (가변 변수, 스코프, 슈퍼 글로벌 변수)
    php, 연산자, 연산자 우선순위
    정상우
    정상우
    과거의 배움으로 현재를 바꾸고 미래를 만듭니다. #25+2살 #INFJ #개발자 #브런치작가
    댓글쓰기
    다음 글
    PHP: 조건문 (if, switch)
    이전 글
    PHP: 상수 (매직상수)
    • 이전
    • 1
    • ···
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 다음

    티스토리툴바