每次我通过$_GET获取一个变量,我想要验证它确实是User类的对象。
因此:
if (isUser($_GET['valid_user']))
{
...
}
有没有内置函数可以代替这个所谓的 "isUser"?
非常感谢!
每次我通过$_GET获取一个变量,我想要验证它确实是User类的对象。
因此:
if (isUser($_GET['valid_user']))
{
...
}
有没有内置函数可以代替这个所谓的 "isUser"?
非常感谢!
您可以验证某个类的任何变量:
if ($my_var instanceof classname)
然而,在您的情况下,那永远不会生效,因为 $_GET["valid_user"] 来自请求且永远不会是一个对象。
isUser() 可能是来自用户管理库的自定义函数,用于验证当前会话。如果您想替换它,需要查看它的工作方式。
if (is_object($_GET['valid_user']))
{
// more code here
}
$_GET[]变量更像常量而不是变量,它们是只读的..但可以像访问任何其他$variable
一样进行访问。
在您的示例中:
if (isUser($_GET['valid_user']))
{
...
}
if (isUser($some_sanatized_variable))
除非isUser()是在做这件事情。PHP设置的“变量”不属于任何类,这说明我担心isUser()可能不知道它正在处理什么。
使用 is_object 检查是否为对象,下方链接解释了如何检查其属于哪个类
classname
不是字符串 - 它是类标识符(可以使用use
关键字导入)。 - robsch