Heim  >  Artikel  >  Backend-Entwicklung  >  Eine effizientere Möglichkeit, die Länge eines PHP-Strings zu bestimmen

Eine effizientere Möglichkeit, die Länge eines PHP-Strings zu bestimmen

怪我咯
怪我咯Original
2017-07-04 11:51:182081Durchsuche

Wenn wir in PHP die Länge eines Strings bestimmen müssen, denken wir zuerst an die Funktion strlen()Ja, strlen() gibt zurück Es ist die Länge der Zeichenfolge, daher ist die Verwendung auf diese Weise kein Problem. Aus Sicht der PHP-Programmoptimierung ist die Verwendung von strlen() zur Bestimmung der Länge einer Zeichenfolge jedoch wahrscheinlich die beste Möglichkeit, sie zu schreiben.

Erfahrene Programmierer haben herausgefunden, dass PHP die Länge einer Zeichenfolge bestimmt isset() Es ist schneller als strlen() und weist eine höhere Ausführungseffizienz auf.


Das heißt:

Der Code lautet wie folgt:

$str = ‘aaaaaa';
if(strlen($str) > 6)
VS
if(!isset($str{6})

Nach einem einfachen Test mit einem Beispiel ist die Situation Im Grunde stimmt es, und die Effizienz von isset() ist fast dreimal so hoch wie die von strlen().

Beispiel:

Der Code lautet wie folgt:

<?php
 //使用strlen方式
 $arr = "123456";
 $sTime = 
microtime
(1);
 if(strlen($arr) > 6){
 // echo 1;
 }
 echo microtime(1) -  $sTime;

Ausgabe: 0,00035595893859863

Der Code lautet wie folgt:

<?php
//使用isset($arr{})方式
 $arr = "123456";
 $sTime = microtime(1);
 if(!isset($arr{6})){
 // echo "1\r\n";
 }
 echo microtime(1) - $sTime;

Ausgabe: 0,00019097328186035

Warum isset() schneller ist als strlen()
strlen() Die Funktion wird recht schnell ausgeführt, da sie keine Berechnungen durchführt und lediglich die bekannte Zeichenfolgenlänge zurückgibt, die in der zval-Struktur (der in C integrierten Datenstruktur zum Speichern von
PHP-Variablen) gespeichert ist. Da strlen () jedoch eine Funktion ist, ist es etwas langsam, da der Funktionsaufruf viele Schritte durchläuft, z. B. Kleinbuchstaben (Anmerkung: Bezieht sich auf den Funktionsnamen in Kleinbuchstaben. PHP unterscheidet nicht zwischen Funktionsnamen in Groß- und Kleinbuchstaben ), Hash-Suche, Wird zusammen mit der aufgerufenen Funktion ausgeführt. In einigen Fällen kann die Verwendung des isset()-Tricks die Ausführung Ihres Codes beschleunigen. Da isset() ein Sprachkonstrukt ist, bedeutet dies, dass für seine Ausführung keine Funktionssuche und keine Kleinschreibung von Buchstaben erforderlich sind. Das heißt, Sie verbringen tatsächlich nicht viel Aufwand damit, die Stringlänge im Code der obersten Ebene zu überprüfen.

Der Aufruf von isset() ist also schneller als strlen().

Das obige ist der detaillierte Inhalt vonEine effizientere Möglichkeit, die Länge eines PHP-Strings zu bestimmen. 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