다음 편집자는 PHP가 비트 연산을 영리하게 사용하여 웹사이트 권한 관리를 구현하는 방법에 대한 기사를 제공합니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다. 편집기를 따라가서 살펴보겠습니다.
먼저 4개 상수를 정의하여 4가지 권한을 설정해 보겠습니다.
==================================== ==
define(ADD,1);//데이터베이스 레코드 권한 증가
define(UPD,2);//데이터베이스 레코드 권한 수정
define(SEL ,4);//데이터베이스 레코드 찾기 권한
define(DEL,8);//데이터베이스 레코드 삭제 권한
= ====== ==============================
다음 3명의 사용자가 있다고 가정합니다.
사용자 A에게 ADD-UPD-SEL-DEL 권한이 4개 있습니다. 비트별 OR 연산을 사용하여 A의 총 값을 계산합니다. 권한
$a_ all=ADD|UPD|SEL|DEL;//$all=15 이 값은 추가 결과와 동일함을 알 수 있습니다.
B 사용자는 세 가지 권한을 가지고 있습니다. 권한 ADD-UPD-SEL, Bitwise OR 연산을 사용하여 B 권한의 총 값을 계산합니다
$b_all=ADD|UPD|SEL;//$all=7 이 값은 추가 결과와 같습니다
사용자 C는 ADD-UPD라는 두 가지 권한을 가지고 있습니다. 비트별 OR 연산을 사용하여 C의 총 권한 값을 계산합니다.
$c_all=ADD|UPD;//$all=3 이 값은 여전히 덧셈 결과와 같습니다
====== ==============================
다음으로 비트별 AND 연산을 사용합니다
$a_all&ADD 결과는 true입니다
$a_all&UPD 결과는 true입니다
$a_all&SEL 결과는 true입니다
$a_all&DEL 결과 맞습니다
================================ =====
$b_all&ADD 결과는 참입니다
$b_all&UPD 결과는 참입니다
$b_all&SEL 결과는 참입니다
$b_all&DEL 결과가 거짓임
=== ============================ =====
$ c_all&ADD 결과는 true
$c_all&UPD 결과는 true
$c_all&SEL 결과는 false
$c_all&DEL The 결과가 거짓임
======= ========================= =====
비밀을 발견하셨나요?
1. 존재하지 않는 권한과 권한의 총합을 AND하면 결과는 false
2. 권한 값은 모두 2의 거듭제곱
이 두 가지 권한 처리 지점을 알고 나면 사용자의 현재 권한 값과 현재 권한 값을 더하면 간단해집니다. 작업에 필요한 권한은 비트 AND로 이루어집니다. 결과가 true이면 실행하고, false이면 오류만 보고하면 됩니다(물론 반드시 오류를 보고하는 것은 아니며, 권한이 없을 때에는 프로그램을 직접 설계해도 됩니다).
위 내용은 웹사이트 권한 관리를 달성하기 위한 PHP의 영리한 비트 연산 사용에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!