每次通过$ _GET获取变量时,我想验证它确实是User类的对象。
所以:
if (isUser($_GET['valid_user']))
{
...
}
是否有一个内置函数来代替这个所谓的“isUser”?
非常感谢!
答案 0 :(得分:46)
您可以验证某个类的任何变量:
if ($my_var instanceof classname)
然而,在你的情况下永远不会有效,因为$ _GET [“valid_user”]来自请求,永远不会成为对象。
isUser()可能是来自用户管理库的自定义函数,用于验证当前会话。如果要替换它,您需要了解它是如何工作的。
答案 1 :(得分:5)
PHP语言中有一个函数可能对您有所帮助:
bool is_a ( object $object , string $class_name )
从documentation:检查对象是否属于此类,或将此类作为其父类之一
答案 2 :(得分:2)
if (is_object($_GET['valid_user']))
{
// more code here
}
答案 3 :(得分:0)
is_object检查它是否是一个对象,下面的链接解释了如何检查哪个类
答案 4 :(得分:0)
$ _ GET []变量比变量更常量,它们是只读的......但碰巧像其他任何$variable
一样被访问。
在你的例子中:
if (isUser($_GET['valid_user']))
{
...
}
我希望希望它会读到:
if (isUser($some_sanatized_variable))
..除非isUser()正在做什么。 PHP设置的“变量”不属于任何类,这说明我担心isUser()可能无法充分了解它的处理方式。