Tôi không chắc liệu bitmask có phải là thuật ngữ chính xác hay không. Hãy để tôi giải thích:
Trong php, error_reporting
hàm có thể được gọi theo nhiều cách:
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);
Tôi lấy thuật ngữ bitmask từ trang php.net ở đây
Dù sao thì điểm của vấn đề này là, tôi đã triển khai một phương thức SIMPLE được gọi là phương thức ls
trả về nội dung của một thư mục.
Hàm này có 3 args ... ($ include_hiised = false, $ return_absolute = false, $ ext = false)
Vì vậy, khi tôi gọi hàm, tôi đặt cách tôi muốn kết quả. Cho dù tôi muốn kết quả trả về thư mục ẩn, cho dù tôi chỉ muốn tên cơ sở, v.v.
vì vậy khi tôi gọi hàm, tôi đang viết
ls(true, false, true)
ls(false, false, true)
ls(true, true, true)
etc...
Tôi nghĩ rằng nó sẽ dễ đọc hơn nhiều nếu tôi có thể gắn cờ cách tôi muốn dữ liệu được trả về?
vì vậy một cái gì đó như:
ls( INCLUDE_HIDDEN | HIDE_EXTS );
ls( SHOW_ABSOLUTE_PATHS | HIDE_EXTS );
Vân vân...
Làm cách nào để thực hiện điều này trong điều kiện kiểm tra cờ nào đã được gọi?
$flags & FLAG_1
- kiểm tra xem FLAG_1 đã được đặt chưa,$flags | FLAG_1
- đặt FLAG_1,$flags & ~FLAG_1
- bỏ đặt FLAG_1,~$flags
- đảo ngược cờ