0

次の点を考慮してください。

<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]];
    }
}

ありがとう!

4

1 に答える 1

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]');
于 2013-02-07T21:18:39.413 に答える