Verwenden Sie str-replace anstelle von ereg-replace
Programmierer, die mit der Programmierung in Perl vertraut sind, sind eher bereit, ereg_replace zu verwenden, um die Arbeit zum Ersetzen von Zeichenfolgen abzuschließen, da die Verwendung von ereg_replace in PHP der Verwendung des Mustervergleichs ähnelt in Perl. Der folgende Code beweist jedoch, dass die Verwendung von str_replace anstelle von ereg_replace die Geschwindigkeit des Codes erheblich verbessert.
Testen Sie die Laufgeschwindigkeit von str_replace
//Dieser Code testet die Laufgeschwindigkeit von str_replace
Hervorhebung ?> for ($i=0; $i<1000; $i++) {
str_replace(i>, $string).
}
?> die Laufgeschwindigkeit von ereg_replace
für ($i=0; $i<1000; $i++) {
ereg_replace(<([ /]*)i> ;, <\1b>, $string).
}
?>
🎜> //Ergebnisse drucken
Fazit
Zeit für die Verwendung von str_replace -
Zeit für die Verwendung von ereg_pattern -
Führen Sie den obigen Code aus, um Folgendes zu erhalten:
Zeit für use str_replace - 0,089757
Zeit für die Verwendung von ereg_pattern - 0,248881
Aus den Ausführungsergebnissen können wir ersehen, dass die Verwendung von str_replace anstelle von ereg_replace als String-Ersetzungsfunktion die Ausführungsgeschwindigkeit erheblich verbessert.
3. Achten Sie auf Zeichenfolgenanführungszeichen
PHP kann wie viele andere Programmiersprachen doppelte Anführungszeichen ("") verwenden, um Zeichenfolgen in Anführungszeichen zu setzen, oder einfache Anführungszeichen (). Wenn Sie jedoch in PHP doppelte Anführungszeichen verwenden, um eine Zeichenfolge in Anführungszeichen zu setzen, analysiert der PHP-Parser zunächst, ob in der Zeichenfolge ein Verweis auf eine Variable vorhanden ist, und ersetzt die Variable. Wenn es sich um einfache Anführungszeichen handelt, ist es nicht so kompliziert – alle in einfache Anführungszeichen eingeschlossenen Zeichenfolgen werden direkt angezeigt. Offensichtlich ist es bei der PHP-Programmierung schneller, einfache Anführungszeichen als Anführungszeichen für String-Variablen zu verwenden als doppelte Anführungszeichen.
4. Vermeiden Sie die Verwendung gemeinsamer Operationen in der Datenbank
Im Vergleich zu anderen Web-Programmiersprachen ist die Datenbankfunktion von PHP sehr leistungsfähig. Der Betrieb der Datenbank in PHP ist jedoch immer noch eine sehr zeitaufwändige und arbeitsintensive Angelegenheit. Daher müssen Sie als Webprogrammierer Datenbankabfragevorgänge minimieren und geeignete Indizes für die Datenbank erstellen. Beachten Sie außerdem, dass Sie bei der Verwendung von PHP zum Betreiben einer Datenbank versuchen sollten, keine gemeinsamen Operationen mehrerer Datentabellen zu verwenden. Obwohl gemeinsame Operationen die Abfragefunktion der Datenbank verbessern können, erhöhen sie die Belastung des Servers erheblich.
Um dieses Problem zu veranschaulichen, können wir uns das folgende einfache Beispiel ansehen.
Wir haben zwei Datentabellen foo und big_foo in der Datenbank erstellt. In der Datentabelle foo gibt es nur ein Feld, das alle natürlichen Zahlen von 1 bis 1000 enthält. Die Datentabelle big_foo hat ebenfalls nur ein Feld, enthält aber alle natürlichen Zahlen von 1 bis 1.000.000. Von der Größe her ist big_foo also gleich foo kombiniert mit sich selbst.
$db->query("select * from foo");
0,032273 Sekunden
$db->next_record(); db->query( "insert into foo-Werte (NULL )")");
0,019506 Sekunden
$db->query("select * from foo as a, foo as b");
17,280596 Sekunden
$db ->query("select. )"); * from foo as a, foo as b where a.id > b.id");
14,645251 Sekunden
$db->query("select * from foo as a , foo as b where a. id = b.id");
0,041269 Sekunden
$db->query("select * from big_foo");
25,393672 Sekunden
Das Ergebnis der obigen Operation Wir können diese Verbindung finden Die Bearbeitung zweier Datentabellen mit 1.000 Datensätzen ist nicht viel schneller als die alleinige Bearbeitung einer großen Datentabelle mit 1.000.000 Datensätzen.
5. Beachten Sie den Unterschied zwischen include und require.
In der PHP-Programmierung haben include() und require() die gleiche Funktion, es gibt jedoch einige Unterschiede in der Verwendung. include() ist eine bedingte Einschlussfunktion. während require() eine bedingungslose Inklusionsfunktion ist. Wenn beispielsweise im folgenden Beispiel die Variable $somgthing wahr ist, wird die Datei somefile eingefügt:
if($something){
include("somefile");
}
Aber egal welchen Wert $something annimmt, der folgende Code fügt die Datei somefile in die Datei ein:
if($ some ){
require("somefile");
}
Das folgende interessante Beispiel veranschaulicht den Unterschied zwischen diesen beiden Funktionen vollständig.
$i = 1;
while ($i < 3) {
require("somefile.$i");
$i++; Das Programm fügt bei jeder Schleife dieselbe Datei ein. Offensichtlich ist dies nicht die ursprüngliche Absicht des Programmierers. Aus dem Code können wir ersehen, dass dieser Code hofft, in jede Schleife unterschiedliche Dateien aufzunehmen. Wenn Sie diese Funktion vervollständigen möchten, müssen Sie sich an die Funktion include() wenden:
$i = 1
while ($i < 3) {
include("somefile.$i") ;
$ i++;
}
6. Beachten Sie den Unterschied zwischen echo und PRint
Die Funktionen von echo und print in PHP sind grundsätzlich gleich, es gibt jedoch subtile Unterschiede zwischen den beiden. Sie können print als normale Funktion im PHP-Code verwenden. Nach der Ausführung des folgenden Codes ist der Wert der Variablen $res beispielsweise 1.
$ret = print "Hello World";
Dies bedeutet, dass print in einigen komplexen Ausdrücken verwendet werden kann, echo jedoch nicht. In ähnlicher Weise wird die Echo-Anweisung im Code etwas schneller ausgeführt als die Print-Anweisung, da für die Echo-Anweisung kein Wert zurückgegeben werden muss.
Das Obige ist der Inhalt von PHP Master's Road (3). Artikel, achten Sie bitte auf die chinesische PHP-Website (www.php.cn)!