Heim >Backend-Entwicklung >PHP-Tutorial >Laravel – Parsen von PHP-Variablen

Laravel – Parsen von PHP-Variablen

WBOY
WBOYOriginal
2016-08-18 09:15:54980Durchsuche

Zum Beispiel habe ich jetzt die Variable $arr, die ein Array ist

<code>$arr = [
    'news' => [
        'data' => [
            0 => [
                'title' => '名字',
                'content' => '内容'
            ],
        ],
    ],
];
</code>

Einige Frameworks oder Template-Engines verfügen über Analysefunktionen. Der Wert von arr.news.data[0].title kann über title abgerufen und geändert werden.

Dann möchte ich wissen, was sein Prinzip ist und wie man diesen Ausdruck effizient, sicher und einfach verwendet, um 获取 und 设置 für die Werte im Array auszuführen?

Ich kann mir vorstellen, Textverarbeitung zu verwenden, aber diese sollte nicht sehr sicher und effizient sein. Bitten Sie den Lehrer um Rat.

Antwortinhalt:

Zum Beispiel habe ich jetzt die Variable $arr, die ein Array ist

<code>$arr = [
    'news' => [
        'data' => [
            0 => [
                'title' => '名字',
                'content' => '内容'
            ],
        ],
    ],
];
</code>

Einige Frameworks oder Template-Engines verfügen über Analysefunktionen. Der Wert von arr.news.data[0].title kann über title abgerufen und geändert werden.

Dann möchte ich wissen, was sein Prinzip ist und wie man diesen Ausdruck effizient, sicher und einfach verwendet, um 获取 und 设置 für die Werte im Array auszuführen?

Ich kann mir vorstellen, Textverarbeitung zu verwenden, aber diese sollte nicht sehr sicher und effizient sein. Bitten Sie den Lehrer um Rat.

Die meisten Template-Engines werden vorkompiliert verarbeitet, das heißt, die eingegebenen Template-Daten werden in Standard-PHP-Anweisungen wie Variablen, Schleifen, Bedingungen und andere Symbole konvertiert und dann ausgeführt.

Außerdem sind diese Frameworks oder Template-Engines alle Open Source. Wenn Sie die Zeit haben, die Leute hier zu fragen, werden Sie es bereits verstehen, wenn Sie sich den Code selbst ansehen.

Lass mich einen Code für dich finden.

<code> public static function getValue($array, $key, $default = null)
    {
        if ($key instanceof \Closure) {
            return $key($array, $default);
        }

        if (is_array($key)) {
            $lastKey = array_pop($key);
            foreach ($key as $keyPart) {
                $array = static::getValue($array, $keyPart);
            }
            $key = $lastKey;
        }

        if (is_array($array) && (isset($array[$key]) || array_key_exists($key, $array)) ) {
            return $array[$key];
        }

        if (($pos = strrpos($key, '.')) !== false) {
            $array = static::getValue($array, substr($key, 0, $pos), $default);
            $key = substr($key, $pos + 1);
        }

        if (is_object($array)) {
            // this is expected to fail if the property does not exist, or __get() is not implemented
            // it is not reliably possible to check whether a property is accessable beforehand
            return $array->$key;
        } elseif (is_array($array)) {
            return (isset($array[$key]) || array_key_exists($key, $array)) ? $array[$key] : $default;
        } else {
            return $default;
        }
    }</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn