Tôi đã xem xét một số cách sử dụng thú vị của || nhà điều hành trong một lệnh trở lại, và sẽ đánh giá cao nếu ai đó có thể khẳng định chính xác những gì đang xảy ra (nếu tôi hiểu nó, tôi có thể sử dụng nó bản thân mình trong tương lai)Xác nhận sử dụng OR (||) trong lệnh trả về
Mã này là
return ( empty($neededRole) || strcasecmp($role, 'admin') == 0 || strcasecmp($role, $neededRole) == 0 );
$ neededRole và $ vai trò hoặc là null, 'admin' hoặc 'manager'
Tôi đọc nó là:
Nếu $neededRole
trống, không cần kiểm tra thêm. Trả lại đúng (và ngừng kiểm tra)
Nếu ($role == 'admin')
thì cho phép truy cập, bất kể vai trò được yêu cầu. Trả về true (và ngừng kiểm tra)
nếu ($role == $neededRole)
thì cho phép truy cập. Trả lại đúng (và ngừng kiểm tra)
Tôi đoán rằng khi đạt đến 'đúng' là việc kiểm tra dừng lại, và nếu nó đến cuối dòng mà không có 'true', nó sẽ mặc định là false.
Tôi có gần điểm không?
Quên để thêm, nếu có một tên cho kỹ thuật này, tôi rất muốn biết để đọc lên trên nó hơn nữa –