如何将isAdmin()更改为$ session-> isAdmin

时间:2013-03-04 01:22:10

标签: php mysql function session variables

所以我查看了一些php脚本,我看过$session->isAdmin(),我喜欢它在代码中的样子......

我意识到这是在调用一个函数;但是,我无法让它发挥作用。我可以调用一个函数,但由于某些原因无法弄清楚如何将其标记为$session->isAdmin()而只是调用isAdmin()

例如:

创建功能

function isAdmin() {
    return 1;
}

回应功能

if (isAdmin() == 1) {
    echo "admin";
}

如何将isAdmin()更改为$session->isAdmin()

我基本上也在尝试学习新东西,所以任何关于此的文档都会非常感激。

2 个答案:

答案 0 :(得分:4)

您观察到的可能是其他框架用于用户会话处理的包装器对象。

将代码更改为对象将是一种很好的做法,可以这样工作:

<?php

/** Session.php  */
class Session 
{
    protected $isAdmin = 0;
    public function __construct() 
    {
        // ... do your session initialisation here ...
        if (USER_HAS_SOMESPECIAL_RIGHTS)
            $this->isAdmin = 1;
    }

    /**
    * Do we have admin rights?
    * @return bool
    */
    public function isAdmin() {
        return $this->isAdmin;
    }

    /**
    * Echoing out the current role in the system
    * @return string
    */
    public function getRole() {
        if ($this->isAdmin)
            return "admin";

        return "normal mortal being (at least not an admin)."
    }
}

用法:

include 'Session.php';
$session = new Session();   // This is when your code in __construct will be evaluated
echo $session->getRole();

当然这只是一个简单的例子,一旦你进入OOP,你会发现你可以在更大程度上抽象出来。希望这有帮助!

答案 1 :(得分:0)

我真的不明白你想用“$ session”做什么......

我可以想象你有一个会话变量,我们称之为$_SESSION['user_type'],如果是管理员,则为1,如果是用户,则为0。

现在你想要一个拼出admin或者用户的功能吗?

function isAdmin($type) {
    if ($type==1) echo "Admin";
    elseif ($type==0) echo "User";
    else echo "And who are you!?";
}

致电:

isAdmin($_SESSION['user_type']);