0

有没有办法用 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 );
4

2 回答 2

0
define("ADMIN", 0x0001);
define("CLIENT", 0x0002);

现在您可以将它们用作实际的位标志

于 2013-06-10T16:44:12.090 回答
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) ...
}
于 2013-06-10T16:45:20.277 回答