php函数1调用函数2



我是PHP新手(Be gente)我有两个功能,我希望能够在adminOnlyAccess()中调用getUserLevel(),甚至可以做到这一点吗?两者都是functions.php中的功能。

这是getUserLevel()

function getUserLevel(){    
    $sql = 'SELECT * FROM author WHERE id = :sessionID';
    $stmt = dbConnection()->prepare($sql);
    $stmt->bindValue(':sessionID', $_SESSION['id']);
    $stmt->execute();
    $data = $stmt->fetch();
    return $data['role'];
}

这是adminOnlyAccess()

function adminOnlyAccess($access = TRUE){   
    $sql = 'SELECT * FROM author WHERE id = :sessionID';
    $stmt = dbConnection()->prepare($sql);
    $stmt->bindValue(':sessionID', $_SESSION['id']);
    $stmt->execute();
    $data = $stmt->fetch();
    if ($access == TRUE && $data['role'] != 1)
    {
        include '../accessdenied.php';
        exit();
    }
}

是的...它是完全可能的

function adminOnlyAccess($access = TRUE){   
    $roles = getUserLevel();
    // $roles now has all the values returned by getUserLevel()
    $sql = 'SELECT * FROM author WHERE id = :sessionID';
    $stmt = dbConnection()->prepare($sql);
    $stmt->bindValue(':sessionID', $_SESSION['id']);
    $stmt->execute();
    $data = $stmt->fetch();
    if ($access == TRUE && $data['role'] != 1)
    {
        include '../accessdenied.php';
        exit();
    }
}

我不明白为什么不能。您可以将adminOnlyAccess转换为如下:

function adminOnlyAccess($access = TRUE){   
    if ($access == TRUE && getUserLevel() != 1)
    {
        include '../accessdenied.php';
        exit();
    }
}

最新更新