请考虑以下事项:
<input type="hidden" name="random[variable][here]" value="valueofrandom"/>
如果我们将名称作为字符串,是否有更好的方法来检索其值?以下工作,但它似乎不是智能。
function getPostValueFromName($name) {
// Example string name: random[variable][here]
$parts = preg_split('/\[|\]/i', $name, -1, PREG_SPLIT_NO_EMPTY);
if (isset($parts[3])) {
return $_POST[$parts[0]][$parts[1]][$parts[2][$parts[3]]];
} elseif (isset($parts[2])) {
return $_POST[$parts[0]][$parts[1]][$parts[2]];
} elseif (isset($parts[1])) {
return $_POST[$parts[0]][$parts[1]];
} else {
return $_POST[$parts[0]];
}
}
谢谢!
答案 0 :(得分:0)
我使用 https://github.com/symfony/PropertyAccess 来做这样的事情。
使用它,您可以使用
获取random[variable][here]
$accessor = new PropertyAccessor();
$val = $accessor->getValue($_POST, 'random.variable.here');
// or
$val = $accessor->getValue($_POST, 'random[variable][here]');