Heim  >  Artikel  >  Backend-Entwicklung  >  Kenntnisse in der PHP-Optimierung

Kenntnisse in der PHP-Optimierung

墨辰丷
墨辰丷Original
2018-06-07 10:44:101748Durchsuche

Dieser Artikel stellt hauptsächlich PHP-Optimierungsfähigkeiten vor. Ich hoffe, dass er für alle hilfreich ist.

Wenn Programmierer Programme schreiben, möchten sie immer, dass ihre Programme möglichst wenig Ressourcen beanspruchen, schneller laufen und weniger Code haben. Oftmals verlieren wir dabei eine Menge Dinge. Der Zweck der Optimierung besteht darin, die geringsten Kosten im Austausch für die schnellste Ausführungsgeschwindigkeit und den am einfachsten zu wartenden Code auszugeben. Das Folgende ist eine Zusammenfassung mehrerer PHP-Optimierungen:
1. Verwendung von in_array
Vermeiden Sie die Verwendung von in_array() bei großen Arrays und vermeiden Sie die Verwendung von mehr als 20 Elementen in einer Schleife Funktion. in_array() kann sehr ressourcenintensiv sein. Bei kleinen Arrays kann die Auswirkung minimal sein, aber die Überprüfung großer Arrays in einer Schleife kann mehrere Sekunden dauern. Wenn Sie diese Funktionalität wirklich benötigen, verwenden Sie isset(), um Array-Elemente zu finden. Tatsächlich wird der Schlüsselname zum Abfragen des Schlüsselwerts verwendet. Der Aufruf von isset($array[$var]) ist viel schneller als in_array($var, array_keys($array)).

2. Array-Schlüsselname
In PHP ist es legal, eine Zeichenfolge ohne einfache Anführungszeichen als Array-Schlüsselname zu verwenden, aber wir wollen das nicht – Schlüsselname sollte immer in einfache Anführungszeichen setzen, um Verwirrung zu vermeiden. Beachten Sie, dass hierbei eine Zeichenfolge anstelle einer Variablen als Schlüsselname verwendet wird.

Zum Beispiel:

// 不好的写法
$foo = $assoc_array[blah];
// 好的写法
$foo = $assoc_array['blah'];
// 不好的写法
$foo = $assoc_array["$var"];
// 好的写法
$foo = $assoc_array[$var];

3. String-Ausdruck Es gibt zwei verschiedene Möglichkeiten, einen String in PHP darzustellen – einfache Anführungszeichen oder doppelte Anführungszeichen. Der Hauptunterschied besteht darin, dass der Syntaxinterpreter die Variablenersetzung für Zeichenfolgen durchführt, die durch doppelte Anführungszeichen dargestellt werden, jedoch keine Zeichenfolgen verarbeitet, die durch einfache Anführungszeichen dargestellt werden. Daher sollten Sie immer einfache Anführungszeichen verwenden, es sei denn, Sie müssen tatsächlich Variablen innerhalb einer Zeichenfolge verarbeiten. Auf diese Weise können wir die laufenden Programmkosten senken, da der Syntaxinterpreter nicht jedes Mal viele Zeichenfolgen ohne Variablen verarbeiten muss.
Wenn Sie eine Zeichenfolgenvariable als Argument in einem Funktionsaufruf verwenden, müssen Sie die Variable ebenfalls nicht in Anführungszeichen setzen. Dies führt dazu, dass der Grammatikdolmetscher mehr Arbeit als nötig erledigt. Denken Sie daran, dass fast alle Escape-Zeichen in doppelten Anführungszeichen keine Auswirkung auf einfache Anführungszeichen haben. Sie müssen die oben genannten Regeln beachten, aber manchmal ist es aus Gründen der Lesbarkeit des Codes angebracht, Ausnahmen zu machen.

Zum Beispiel:

// 不好的写法
$str = "This is a really long string with no variables for the parser to find.";
do_stuff("$str");
// 好的写法
$str = 'This is a really long string with no variables for the parser to find.';
do_stuff($str);
// 有时候单引号不是那么合适
$post_url = $phpbb_root_path . 'posting.' . $phpEx . '?mode=' . $mode . '&start=' . $start;
// 双引号有时候能让代码行更集中
$post_url = "{$phpbb_root_path}posting.$phpEx?mode=$mode&start=$start";

4. Operationen in der Schleifendefinition Wenn es Operationen im Vergleichsteil gibt, achten Sie bitte darauf, diese zu optimieren. Da dieser Teil bei jedem Schritt in der Schleife ausgeführt wird:

// 在每次循环中sizeof函数都要被调用
 for ($i = 0; $i < sizeof($post_data); $i++)
 {
  do_something();
 }
// 您可以在循环起始部分对这个不变的量赋值
 for ($i = 0, $size = sizeof($post_data); $i < $size; $i++)
 {
  do_something();
 }

5. Branch-Beurteilung, Switchcase ist besser als ifelse Die Verwendung von Branch-Anweisungen ist viel besser als die Verwendung vieler ifelse.

6. Missbrauchen Sie den @-Operator nicht
Missbrauchen Sie den @-Operator nicht. Es scheint sehr einfach, aber tatsächlich ist die Verwendung von @ um ein Vielfaches weniger effizient als nicht mit @.
Verwenden Sie @ insbesondere nicht in Schleifen.

7. So ermitteln Sie die Zeit
Oft sind wir es gewohnt, time() zu verwenden, um die aktuelle Uhrzeit abzurufen, aber time() ist schließlich eine Funktion. Sie ist besser $_SERVER['REQUEST_TIME direkt '] besser verwenden.

8. Beurteilung der Stringlänge
Zwei Schreibmethoden:
(1) if(strlen($str) < 5){/ * etwas tun */}
(2) if(isset($str[5])){ /* etwas tun */ }

Zusammenfassung: Das Obige ist dieser Artikel Ich hoffe, dass der gesamte Inhalt für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

Methoden und Fälle zur Implementierung der Matrixtransponierungsoperation zweidimensionaler Arrays in PHP

Methoden und Fälle zum Zusammenführen mehrerer Bilder zu einem in PHP

PHP-Entwicklung des WeChat-Rückerstattungsfunktionsfalls

Das obige ist der detaillierte Inhalt vonKenntnisse in der PHP-Optimierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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