PHP Elseif总是返回错误的多个条件

时间:2018-01-16 15:56:08

标签: php if-statement boolean multiple-conditions

我正在尝试创建一个帮助器php-function,如果用户具有正确的访问级别,它将返回true / false。用户登录时设置访问级别。问题是该函数始终返回false。该函数位于我想要使用它的页面上包含(包含include_once)的“类”php文件。

我对php有点新手,但if条件似乎是正确的。

我已经测试过以admin和“economy”身份登录,但它没有返回true。 我也尝试回显作为参数发送的值,甚至在elseif语句之前检查访问级别是否正确(通过回显值)。

    const AccessLevelUser = 0;      
    const AccessLevelAdmin = 1;     
    const AccessLevelManager = 2; 
    const AccessLevelEconomy = 3;

    public static function hasAccessLevel($requiredAccess) {
        //file_put_contents('logg.txt', $logg);

        if( !isset($_SESSION['accesslevel']) ) {
            header("location:index.php?location=login");
            exit;
        }elseif ( $requiredAccess == AccessLevelAdmin && $_SESSION['accesslevel'] == AccessLevelAdmin ) {
                echo "Admin True";
                return true;

        }elseif( $requiredAccess == AccessLevelEconomy && ($_SESSION['accesslevel'] == 3 || $_SESSION['accesslevel'] == 1) ) {
                echo "Economy True";
                return true;

        }elseif( $requiredAccess == AccessLevelManager && ($_SESSION['accesslevel'] == 2 || $_SESSION['accesslevel'] == 1) ) { 
                echo "Manager True";
                return true;

        }elseif( $requiredAccess == AccessLevelUser && ($_SESSION['accesslevel'] == 0 || $_SESSION['accesslevel'] == 1) ) { 
                echo "User True";
                return true;
        }else{
                echo "FALSE!";
                return false;
        }
    }

0 个答案:

没有答案