有没有办法用true或false定义一些变量,并将它们作为参数一起传递给函数,就像在C ++中一样,使用按位包含的方式打开或关闭函数的各个部分或者... :
// Declare
define( "ADMIN", TRUE);
define( "CLIENT", TRUE);
function Authenticated( $flags )
{
// Not sure what would go here ? but something like
// If ADMIN then
// If CLIENT then
// If ADMIN | CLIENT then
}
// Call
Authenticated( ADMIN | CLIENT );
答案 0 :(得分:0)
define("ADMIN", 0x0001);
define("CLIENT", 0x0002);
现在您可以将它们用作实际bitflags。
答案 1 :(得分:0)
您可以在类中定义常量,并确保它们的值是单独的位:
class Authentication
{
const ADMIN = 0x0001;
const CLIENT = 0x0002;
}
function Authenticated($flags)
{
$adminFlag = $flags & Authentication::ADMIN;
$clientFlag = $flags & Authentication::CLIENT;
if ($adminFlag && $clientFlag) ...
else if ($adminFlag) ...
else if ($clientFlag) ...
}