我只是在学习OOP
Php,我理解OOP
编程的基本原理,并尝试做练习。我想做一个简单的消息传递应用程序,用户可以互相发送消息。像电子邮件,但在一个封闭的系统。
我的想法是当用户登录时,我创建一个包含用户可以执行的功能的用户对象,如果管理员登录,我创建了一个管理对象,该对象扩展了添加了管理功能的用户类。
我的问题是我是否可以在其他类中检查对象是管理员还是用户类,而无需在类中注入或在检查类中创建对象。像这样:
class Checker{
// some variables
public function isAdmin($object ){
if($object istanceof Admin){
return 1;
} else{
return 0;
}
}
}
答案 0 :(得分:0)
IMO使用反射和内省进行非调试目的是一种反实践。 PHP 5 Reflection API performance
这样做:
class User implements SystemUserInterface
{
public function isAdmin()
{
return false;
}
}
class Admin extends User
{
public function isAdmin()
{
return true;
}
// other stuff that only admin can do..
}
function checkUser($user)
{
echo "You have created ".($user->isAdmin()? "admin":"regular")." user";
}