所以我查看了一些php脚本,我看过$session->isAdmin()
,我喜欢它在代码中的样子......
我意识到这是在调用一个函数;但是,我无法让它发挥作用。我可以调用一个函数,但由于某些原因无法弄清楚如何将其标记为$session->isAdmin()
而只是调用isAdmin()
例如:
创建功能
function isAdmin() {
return 1;
}
回应功能
if (isAdmin() == 1) {
echo "admin";
}
如何将isAdmin()
更改为$session->isAdmin()
?
我基本上也在尝试学习新东西,所以任何关于此的文档都会非常感激。
答案 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']);