嘗試類似這樣的事情。
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;
}
}
這可能有助於看看php的文檔Classes and Objects。
例子:
網址:myurl.com/stuff?var=value & NUM = 1
然後$_GET
看起來是這樣的:
array('var' => 'value', 'num' => '1')
通過循環,我們會請檢查$foo
是否有財產var
,($foo->var
)以及是否有財產num
($foo->num
)。
有趣的是,這將工作不區分大小寫?所以當查詢看起來像你發佈的那個時,它會設置$ foo-> Var(大寫V)。 – user2177707 2013-03-17 04:04:01
如果你需要它不區分大小寫,你可以總是使用php的[strtolower](http://php.net/manual/en/function.strtolower.php),假設一切都是小寫的。例如:'$ index = strtolower($ index); $ FOO - > {$指數}'。 @ user2177707 - 您的對象屬性是否遵循命名約定?像所有的小寫字母,除了第一個字母,全部大寫,等等? – Aiias 2013-03-17 04:05:44
CamelCase,這使得它很難自動確定格式(因此我的絕望:))。 – user2177707 2013-03-17 04:13:38