PHP

    비트 연산자 : 숫자를 이진수(binary) 단위로 조작하는 연산자
    • 조회수 5
    • 작성일 2026-03-26
    •  

    비트 연산자 : 숫자를 이진수(binary) 단위로 조작하는 연산자




    PHP 비트 연산자 종류

    연산자
    &AND$a & $b두 값 모두 1인 비트만 1
    |OR$a | $b둘 중 하나라도 1이면 1
    ^XOR$a ^ $b둘 중 하나만 1이면 1
    ~NOT~$a비트를 반전 (0→1, 1→0)
    <<Left Shift$a << $b비트를 왼쪽으로 $b만큼 이동
    >>Right Shift$a >> $b비트를 오른쪽으로 $b만큼 이동



    실무에서 비트 연산(&)을 쓰는 이유는 "확장성"과 "중복 권한" 때문입니다.


    ⓐ 한 명의 사용자가 여러 권한을 가질 수 있어서

    ⓑ DB 설계를 깔끔하게 유지하려고


    비트 연산을 안 쓰면, 권한이 늘어날 때마다 DB에 is_admin, is_staff, is_vip 같은 컬럼을 계속 추가해야 합니다. 하지만 이 방식을 쓰면 member_type이라는 숫자 컬럼 딱 하나에 수십 개의 권한 조합을 다 집어넣을 수 있어요.


    // CI3

    $this->CI->session->userdata('member_type')


    // CI4

    session()->get('member_type')


    $member_type = 5;

    if (!((int)session()->get('member_type') & $member_type)) {

    return $this->response->setJSON(['error' => '권한이 없는 접근입니다.']);

    }