Heim  >  Artikel  >  Backend-Entwicklung  >  ci – Gibt es ein Problem mit dem Quellcode des CodeIgniter-Frameworks Router.php?

ci – Gibt es ein Problem mit dem Quellcode des CodeIgniter-Frameworks Router.php?

WBOY
WBOYOriginal
2016-12-05 13:44:251018Durchsuche

In der Datei systemcoreRouter.php des CI-Frameworks lautet der Startcode von Zeile 132 wie folgt:

<code>    is_array($routing) && isset($routing['directory']) && $this->set_directory($routing['directory']);
    $this->_set_routing();

    // Set any routing overrides that may exist in the main index file
    if (is_array($routing))
    {
        empty($routing['controller']) OR $this->set_class($routing['controller']);
        empty($routing['function'])   OR $this->set_method($routing['function']);
    }</code>

Zuallererst die erste Zeile:
is_array($routing) && isset($routing['directory']) && $this->set_directory($routing['directory']);
Ich bin mir nicht sicher, ob es sinnvoll ist, so zu schreiben. Wenn dem Ergebnis (wahr oder falsch) einer solchen Ausdruckslinie kein Urteil hinzugefügt wird, welchen Zweck hat das Ergebnis (wahr oder falsch)? Verwenden Sie in der if-Urteilsaussage ein leeres Urteil. Ich denke auch, dass die beiden Ergebnisse bedeutungslos sind. Wenn Sie kein Urteil fällen, haben Sie irgendwelche Gedanken darüber, es so zu schreiben?
Bitte geben Sie mir einen Rat.

Antwortinhalt:

In der Datei systemcoreRouter.php des CI-Frameworks lautet der Startcode von Zeile 132 wie folgt:

<code>    is_array($routing) && isset($routing['directory']) && $this->set_directory($routing['directory']);
    $this->_set_routing();

    // Set any routing overrides that may exist in the main index file
    if (is_array($routing))
    {
        empty($routing['controller']) OR $this->set_class($routing['controller']);
        empty($routing['function'])   OR $this->set_method($routing['function']);
    }</code>
Zuallererst die erste Zeile:

is_array($routing) && isset($routing['directory']) && $this->set_directory($routing['directory']);
Ich bin mir nicht sicher, ob es sinnvoll ist, so zu schreiben. Wenn dem Ergebnis (wahr oder falsch) einer solchen Ausdruckslinie kein Urteil hinzugefügt wird, welchen Zweck hat das Ergebnis (wahr oder falsch)? Verwenden Sie in der if-Urteilsaussage ein leeres Urteil. Ich denke auch, dass die beiden Ergebnisse bedeutungslos sind. Wenn Sie kein Urteil fällen, haben Sie irgendwelche Gedanken darüber, es so zu schreiben?
Bitte geben Sie mir einen Rat.

<code>is_array($routing) && isset($routing['directory']) && $this->set_directory($routing['directory']);

</code>
Wussten Sie, dass dieses Symbol

ist? && Mit anderen Worten: true + true und
müssen erfolgreich ausgeführt werden, bevor der dritte ausgeführt wird. Alle drei müssen erfolgreich ausgeführt werden, sonst wird er nicht ausgeführt. Wir können es in eine andere Schreibweise ändern: 第一个 第二个

Ist Ihr Denken sehr klar?
<code>if (is_array($routhing) && isset($routing['directory'])) {
    $this->set_directory($routing['directory']);
}
</code>

Warum machst du das?

Tu das?

&&

<code>1、因为不涉及复杂的语句
2、简洁
3、直观、可读性强</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