PHP 5.我遇到需要将不区分大小写的url查询转换为PHP对象中的成员变量的情况。基本上,我需要知道url查询键指向哪个成员变量,以便我知道它是否为数字。
例如:
class Foo{
$Str;
$Num;
}
myurl.com/stuff?$var=value&num=1
处理此URL查询时,我需要知道“str”与Foo-> $ Str等相关联。有关如何处理此问题的任何想法?我无法想出任何东西。
答案 0 :(得分:1)
尝试这样的事情。
function fooHasProperty($foo, $name) {
$name = strtolower($name);
foreach ($foo as $prop => $val) {
if (strtolower($prop) == $name) {
return $prop;
}
}
return FALSE;
}
$foo = new Foo;
// Loop through all of the variables passed via the URL
foreach ($_GET as $index => $value) {
// Check if the object has a property matching the name of the variable passed in the URL
$prop = fooHasProperty($foo, $index);
// Object property exists already
if ($prop !== FALSE) {
$foo->{$prop} = $value;
}
}
在Classes and Objects上查看php的文档可能会有所帮助。
示例:强>
网址:myurl.com/stuff?var=value&num=1
然后$_GET
看起来像这样:
array('var' => 'value', 'num' => '1')
循环使用,我们将检查$foo
是否有属性var
,($foo->var
)以及是否有属性num
($foo->num
)。