Heim > Backend-Entwicklung > PHP-Tutorial > 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
Freigeben: 2023-03-03 10:40:02
Original
1054 Leute haben es durchsucht

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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren
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>
Nach dem Login kopieren
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>
Nach dem Login kopieren

Warum machst du das?

Tu das?

&&

<code>1、因为不涉及复杂的语句
2、简洁
3、直观、可读性强</code>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage