Leere PHP mehrere Variablen. Üben Sie die Verwendung der PHP-Funktion empty()

In PHP unterscheiden sich die Werte FALSE und NULL sowie die zugehörigen Werte von dem, was sie normalerweise in anderen Sprachen tun, und haben ihre eigenen, nicht offensichtlichen Merkmale.
Der Artikel behandelt diese Funktionen.
Für Anfänger kann dies nützlich sein, um das Gesamtbild zu sehen; für erfahrene Leser kann es nützlich sein, ihr Gedächtnis aufzufrischen, wenn ihnen eine Nuance entgangen ist.

FALSE in If-Anweisungen

Laut der PHP-Dokumentation sind die folgenden Werte nach der Umwandlung in boolesche Werte FALSE:
  • Der boolesche Wert selbst ist FALSE
  • eine leere Zeichenfolge ("") und die Zeichenfolge "0".
  • leeres Array (Array) – array().
  • ein Objekt mit null Mitgliedsvariablen (nur PHP 4, wird in diesem Artikel nicht behandelt)
  • spezieller NULL-Wert (einschließlich nicht gesetzter Variablen)
  • SimpleXML-Objekte (in diesem Artikel nicht behandelt)
Das heißt, wenn solche Werte an die Bedingung übergeben werden:
if (…) echo „1“; sonst echo „0“;
dann wird die Zeichenfolge „0“ ausgegeben.

Wenn der Wert der Variablen nicht gesetzt (unset) ist, kann auch eine Warnung ausgegeben werden. Wir möchten Sie daran erinnern, dass die Warnung in der Bedingung entfernt werden kann, indem Sie @ vor die Variable schreiben.

Zum Beispiel:

Wenn (@$undefVar) ( …)
Sie sollten @ jedoch nur im Extremfall verwenden, wenn Sie sorgfältig darüber nachgedacht haben und keine anderen geeigneten Optionen zur Verfügung stehen. Siehe Funktion isset().

Die Funktion is_null() und die Sprachkonstrukte isset() und empty()

is_null() gibt TRUE nur für Variablen zurück, denen kein Wert zugewiesen ist oder denen der Wert NULL zugewiesen ist.
isset() gibt im Vergleich zu is_null() Eins-zu-eins-Boolesche Werte zurück.
Wenn der Variablen kein Wert zugewiesen ist, gibt is_null() im Gegensatz zu isset(), das keine Warnung ausgibt, auch eine „Undefinierte Variable“-Warnung aus.
Denken Sie daran, dass Sie zum Entfernen des Werts einer Variablen die Funktion unset() verwenden können. Sie können zu diesem Zweck auch den Wert NULL zuweisen, um Compiler-Warnungen beim Versuch, den Wert einer Variablen zu lesen, zu vermeiden.

Bitte beachten Sie, dass Sie zum Arbeiten mit Konstanten im Gegensatz zu Variablen das Konstrukt define() verwenden müssen.

String-Darstellung

Schauen wir uns die String-Darstellung falscher Konstanten an.
Durch die Verkettung werden die Werte beispielsweise in die folgenden Zeichenfolgen konvertiert, wie in der folgenden Tabelle dargestellt:

Das Thema Konvertieren in Strings wird auf der offiziellen Website im Abschnitt Konvertieren in String ausführlicher beschrieben.

Vergleichsoperatoren

Kommen wir zu den Vergleichsoperatoren.
Alle falschen Werte geben erwartungsgemäß true zurück, wenn sie mit dem Operator „==“ mit FALSE verglichen werden.
Allerdings sollte man sich hier nicht auf die Transitivität verlassen, wenn man falsche String-Konstanten miteinander vergleicht.
Hier ist eine vollständige Tabelle zum Vergleich falscher Werte (Plus kennzeichnet Tabellenelemente, die beim Vergleich mit dem Operator „!=“ einen wahren Wert zurückgeben:

$undef – eine Variable, der kein Wert zugewiesen wurde

Aus der Tabelle lassen sich einige erfreuliche Schlussfolgerungen ziehen:
1. Wenn wir wissen, dass wir nur Zeichenfolgen verwenden, können wir sie sicher vergleichen und müssen uns keine Sorgen machen, dass „“ (eine leere Zeichenfolge) gleich „0“ ist.
2. Arrays sind niemals gleich Strings, Ganzzahlen oder reellen Zahlen.

Da die Typen verschiedener falscher Konstanten unterschiedlich sind, kann ein Operatorpaar === und !== verwendet werden, um sie zu unterscheiden.
Der ===-Operator gibt für alle Paare falscher Werte „false“ zurück.
Gibt den wahren Wert nur für Argumente zurück, von denen einem der Wert NULL und dem zweiten kein Wert zugewiesen ist.

Unterschied zwischen Variablen mit NULL-Wert und undefinierten Variablen

Mit dem ===-Operator können Sie zwischen allen falschen Werten unterscheiden, mit Ausnahme von Variablen mit einem NULL-Wert und Variablen, denen kein Wert zugewiesen wurde.

Solche Variablen können mit der Funktion get_defined_vars() unterschieden werden.

Wenn Sie feststellen müssen, ob der Variablen $var ein Wert zugewiesen wurde, können Sie dazu den folgenden Codeausschnitt verwenden:
if (array_key_exists("var", get_definierte_vars())) ( echo "var ist definiert"; // $var ist NULL zugewiesen) else ( echo "var ist NICHT definiert"; // $var ist nicht definiert oder unset($ var) wurde aufgerufen)

Schlussfolgerungen

Sie sollten immer bedenken, dass in PHP zwei falsche Werte möglicherweise nicht gleich sind und Variablen, die auf den ersten Blick unterschiedlich erscheinen, sich beim Vergleich als gleich herausstellen können. Um solche Überraschungen zu vermeiden, können Sie die Operatoren === und !== verwenden.

Um Überraschungen zu vermeiden, können Sie bei der Arbeit mit Arrays eine Funktion schreiben, um Werte in garantiert unterschiedliche Indizes umzuwandeln. Danach ist der Zugriff auf die Elemente des Arrays nur noch darüber möglich. Dies kann das Programm verlangsamen, hilft aber, Überraschungen zu vermeiden.

Die moderne Programmierung manipuliert seit langem erfolgreich untypisierte Variablen. Der Typ der Variablen kann nicht im Voraus festgelegt werden und kann während der Programmausführung geändert werden.

Dieses Konzept ist zum zentralen Bestandteil des allgemeinen Programmierparadigmas geworden. Zu Beginn des Programmierzeitalters erforderten Sprachen mit der gleichen gründlichen Sicherheit vom Programmierer die Vordefinition von Variablen und stellten strikt sicher, dass ihnen nichts Unzulässiges zugewiesen wurde. Weder Programme noch Programmiersprachen hatten vorher eine Ahnung, dass eine Variable ihren Typ ändert.

Über das Leere und Nichtvorhandene

Die PHP-Funktion empty() ist die Umkehrung der Funktion isset() und verfügt über einige besondere Nutzungsfunktionen. Wenn keine Variable vorhanden ist, antwortet die erste Funktion positiv und ihr Ergebnis ist wahr, und die zweite antwortet negativ, das heißt, ihr Wert ist falsch.

Per Definition dient isset() dazu, die Existenz einer Variablen zu überprüfen. Es spielt keine Rolle, was und wie die Variable zugewiesen wurde, Hauptsache, sie existiert und wird nicht durch die Funktion unset() zerstört. Das Ergebnis der Funktion isset() ist positiv – wahr. Es ist wichtig zu bedenken, dass wenn $iVar = 0; dann ist isset($iVar) wahr, aber auch empty($iVar) ist wahr.

Im ersten Fall bedeutet das Ergebnis, dass die Variable existiert, im zweiten Fall ist die Variable leer, also der Wert „0“ in beliebiger Form, sei es eine Zeichenfolge („0“) oder eine Zahl (Bruchzahl – 0,0 oder Ganzzahl - 0) ist dasselbe: empty($iVar) ist wahr.

Über Sicherheit und Kontrolle

Die Praxis zeigt, dass untypisierte Sprachen dem Programmierer viel mehr Freiheit geben, aber davon ausgehen, dass seine Einstellung zur Arbeit am Algorithmus verantwortungsvoller ist.

PHP bietet eine moderne Syntax, die etablierte Semantik unterstützt, wenig Fehler aufweist, aber sorgfältige Aufmerksamkeit erfordert. Beispielsweise erfordert der Aufruf einer Funktion eine bestimmte Anzahl von Parametern.

Beim Aufruf einer Funktion ist es überhaupt nicht notwendig, alle Parameter zu übergeben; Sie können nur einen wesentlichen Teil davon übergeben. Die Funktion „muss“ die Anwesenheit und Existenz aller Parameter prüfen. Diejenigen, die fehlen oder falsche Werte haben, müssen in die Normalform zurückgeführt und mit den erforderlichen Werten versehen werden.

In diesem Zusammenhang ist die PHP-Funktion empty() unerlässlich. Ausdruck:

$a = "1;2" + 20

weist der Variablen $a den Wert 21 zu, da der erste Teil des Ausdrucks als 1 und der zweite als 20 dargestellt wird.

Das Ergebnis ist vom Typ Zahl und die PHP-Funktion empty($a) hat das Ergebnis - false, d. h. die Variable $a ist nicht leer.

In diesem Zusammenhang eine Funktion haben:

funcTest($a ​​​​= 0, $b = 20)

Beim Anruf:

$res = funcTest($aVal, $bVal)

wird das Gewünschte haben, das heißt das Ergebnis der Funktion. Und wenn man angerufen wird:

  • $res = funcTest($aVal. $bVal)

Der Funktionskörper enthält nur einen Parameter mit dem Wert „$aVal . $bVal“ und höchstwahrscheinlich wird dieser Parameter als Zeichenfolge interpretiert.

PHP empty() für Objekte und Arrays

Die Sprachsyntax verfügt über eine ausreichende Anzahl von Konstrukten und Funktionen für die Arbeit mit Objekten und Arrays, aus Sicht der Prüfung auf deren Existenz und auf das Vorhandensein eines Werts gibt es jedoch keine besonderen Unterschiede zu Variablen.

PHP leer (Array) – entspricht dem Aufruf von empty (einfache Variable). Es gibt jedoch sehr wichtige Überlegungen zu Objekten. Was die Überprüfung eines Objekts auf Existenz (isset) angeht, ergibt die Frage kaum Sinn. Was die PHP-Funktion empty() betrifft, bleibt die Zweckmäßigkeit ihrer Verwendung fraglich.

Gemäß der Logik der objektorientierten Programmierung verfügt ein Objekt über einen eigenen Inhalt und einen eigenen Methodensatz. Nur das Objekt selbst kann erkennen, ob es leer ist oder nicht, nicht jedoch eine Funktion eines Drittanbieters, selbst wenn diese Teil der Syntax der Sprache ist.

Ein Objekt und seine Funktion empty()

Auf dieser einfachen, aber legitimen Grundlage sollte jedes Objekt im Kontext seines Verständnisses von „Leere“ betrachtet werden. Beispielsweise besteht die Implementierung des Objekts „Staffing Table“ aus „Employee“-Datensätzen. Wenn es jedoch keinen einzigen Mitarbeiter gibt, gibt es in der „Besetzungsliste“ immer Optionen für die Positionen potenzieller Mitarbeiter.

Auf welcher Ebene sollte ich hier die PHP-Funktion für leere Objekte verwenden? Auf der Ebene „Staffing“ ist alles vorhanden, auch wenn es keinen einzigen Mitarbeiter gibt. Auf der Ebene „Mitarbeiter“ ist das Objekt bereits vorhanden, auch wenn es nicht vollständig gefüllt ist. Ein nicht vollständig gefülltes Objekt kann als leeres Objekt klassifiziert werden. Für die Besetzungstabelle ergeben sich daraus keine Vorteile.

Abhängig von Ihrem Programmierstil sind die PHP-Funktionen empty() und isset() sehr wichtig für den Aufbau eines sicheren und zuverlässigen Algorithmus, für Objekte ist es jedoch immer noch besser, eine Variante von empty() durch ihren Inhalt definiert zu haben.

Variable Zeichenfolge (12)

Ich habe eine Funktion isNotEmpty, die true zurückgibt, wenn die Zeichenfolge nicht leer ist, und false, wenn die Zeichenfolge leer ist. Ich habe herausgefunden, dass es nicht funktioniert, wenn ich eine leere Zeile durchgebe.

Funktion isNotEmpty($input) ( $strTemp = $input; $strTemp = trim($strTemp); if(strTemp != "") //Auch versucht: "if(strlen($strTemp) > 0)" ( return true ; ) falsch zurückgeben ;

Der String wird mit isNotEmpty überprüft:

If(isNotEmpty($userinput["phoneNumber"])) ( //die Telefonnummer validieren) else ( echo „Telefonnummer nicht eingegeben
"; }

Wenn die Zeile leer ist, wird else nicht ausgeführt, ich verstehe nicht warum, kann bitte jemand etwas Licht ins Dunkel bringen?

Antworten

wenn Sie ein Feld namens serial_number haben und nach Leerzeichen suchen möchten

$serial_number = trim($_POST); $q="select * from product where user_id="$_SESSION""; $rs=mysql_query($q); while($row=mysql_fetch_assoc($rs))( if(empty($_POST["irons"]))( $irons=$row["product1"]; )

Auf diese Weise können Sie alle Schleifen in einer Schleife mit einer anderen leeren Funktion durchlaufen

Nun, anstatt zu antworten (ich glaube, Sie haben Ihr Problem bereits gelöst), werde ich Ihnen einige Ratschläge geben.

Ich weiß nicht, wie es allen anderen geht, aber ich persönlich ärgere mich sehr, wenn ich so etwas sehe wie:

Wenn(<>) ( true zurückgeben; ) false zurückgeben;

Dies erfordert eine elegante „ return (<>); " Bitte schauen Sie sich immer Ihren Code an und entfernen Sie diese Logik. Für jede Situation, in der Sie die IF-Anweisung nicht benötigen.

Ich schreibe gerade meine eigene is_string-Funktion, um die Typen zu überprüfen, und strlen, um die Länge zu überprüfen.

Funktion emptyStr($str) ( return is_string($str) && strlen($str) === 0; ) print emptyStr("") ? „leer“ : „nicht leer“; // leer

BEARBEITEN: Sie können die Trim-Funktion auch verwenden, um zu überprüfen, ob eine Zeichenfolge nicht enthält.

Is_string($str) && strlen(trim($str)) === 0;

PHP verfügt über eine integrierte Funktion namens empty(). Der Test erfolgt durch Eingabe von if(empty($string))(...) php.net link: php empty

Sie haben die Antwort, aber in Ihrem Fall können Sie sie verwenden

Return empty($input);

Rückgabe is_string($input);

Einfaches Problem. Ändern:

If(strTemp != "")

If($strTemp != "")

Vielleicht können Sie es auch ändern in:

If($strTemp !== "")

da != "" true zurückgibt, wenn Sie die numerische Zahl 0 übergeben, und in einigen anderen Fällen aufgrund der automatischen Typkonvertierung von PHP.

Bedenken Sie auch, dass PHP bereits über eine empty()-Funktion verfügt.

PHP wertet einen leeren String als „false“ aus, sodass Sie einfach Folgendes verwenden können:

If (trim($userinput["phoneNumber"])) ( // Telefonnummer validieren) else ( echo "Telefonnummer nicht eingegeben
"; }

Ich verwende Regex immer, um nach einer leeren Zeichenfolge zu suchen. Dies geht auf die Zeit von CGI/Perl und Javascript zurück. Warum also nicht beispielsweise PHP (wenn auch ungetestet)?

Return preg_match("/\S/", $input);

Dabei steht \S für ein beliebiges Zeichen ohne Leerzeichen

Verwenden Sie einfach die Funktion strlen()

If (strlen($s)) ( // nicht leer )

Ich habe mir kürzlich die gleiche Frage gestellt.
Es gibt mehrere mögliche Lösungen, hier sind drei gültige:

  • s.indexOf(starter) === 0
  • s.substr(0,starter.length) === Starter
  • s.lastIndexOf(starter, 0) === 0 (hinzugefügt, nachdem Mark Bayers Antwort angezeigt wurde)
  • mit einer Schleife:

    Funktion startet mit(s,starter) ( für (var i = 0,cur_c; i< starter.length; i++) { cur_c = starter[i]; if (s[i] !== starter[i]) { return false; } } return true; }

Die letztere Lösung, bei der eine Schleife verwendet wird, ist mir noch nicht begegnet.
Überraschenderweise ist diese Lösung den ersten 3 deutlich überlegen.
Hier ist der Jsperf-Test, den ich durchgeführt habe, um zu diesem Schluss zu kommen: http://jsperf.com/startswith2/2

ps: Ecmascript 6 (Harmony) führt seine eigene Methode „startsWith“ für Strings ein.
Überlegen Sie, wie viel Zeit gespart worden wäre, wenn man daran gedacht hätte, diese dringend benötigte Methode in die erste Version aufzunehmen.

Aktualisieren

Beachten Sie, dass Steve zwei Schleifenoptimierungen vorgenommen hat. Die erste der beiden zeigte eine bessere Leistung. Daher werde ich den Code unten veröffentlichen:

Funktion startet mit2(str, Präfix) ( if (str.length< prefix.length) return false; for (var i = prefix.length - 1; (i >= 0) && (str[i] === prefix[i]); --ich fahre fort; Rückkehr i< 0; }

In PHP unterscheiden sich die Werte FALSE und NULL sowie die zugehörigen Werte von dem, was sie normalerweise in anderen Sprachen tun, und haben ihre eigenen, nicht offensichtlichen Merkmale.
Der Artikel behandelt diese Funktionen.
Für Anfänger kann dies nützlich sein, um das Gesamtbild zu sehen; für erfahrene Leser kann es nützlich sein, ihr Gedächtnis aufzufrischen, wenn ihnen eine Nuance entgangen ist.

FALSE in If-Anweisungen

Laut der PHP-Dokumentation sind die folgenden Werte nach der Umwandlung in boolesche Werte FALSE:
  • Der boolesche Wert selbst ist FALSE
  • eine leere Zeichenfolge ("") und die Zeichenfolge "0".
  • leeres Array (Array) – array().
  • ein Objekt mit null Mitgliedsvariablen (nur PHP 4, wird in diesem Artikel nicht behandelt)
  • spezieller NULL-Wert (einschließlich nicht gesetzter Variablen)
  • SimpleXML-Objekte (in diesem Artikel nicht behandelt)
Das heißt, wenn solche Werte an die Bedingung übergeben werden:
if (…) echo „1“; sonst echo „0“;
dann wird die Zeichenfolge „0“ ausgegeben.

Wenn der Wert der Variablen nicht gesetzt (unset) ist, kann auch eine Warnung ausgegeben werden. Wir möchten Sie daran erinnern, dass die Warnung in der Bedingung entfernt werden kann, indem Sie @ vor die Variable schreiben.

Zum Beispiel:

Wenn (@$undefVar) ( …)
Sie sollten @ jedoch nur im Extremfall verwenden, wenn Sie sorgfältig darüber nachgedacht haben und keine anderen geeigneten Optionen zur Verfügung stehen. Siehe Funktion isset().

Die Funktion is_null() und die Sprachkonstrukte isset() und empty()

is_null() gibt TRUE nur für Variablen zurück, denen kein Wert zugewiesen ist oder denen der Wert NULL zugewiesen ist.
isset() gibt im Vergleich zu is_null() Eins-zu-eins-Boolesche Werte zurück.
Wenn der Variablen kein Wert zugewiesen ist, gibt is_null() im Gegensatz zu isset(), das keine Warnung ausgibt, auch eine „Undefinierte Variable“-Warnung aus.
Denken Sie daran, dass Sie zum Entfernen des Werts einer Variablen die Funktion unset() verwenden können. Sie können zu diesem Zweck auch den Wert NULL zuweisen, um Compiler-Warnungen beim Versuch, den Wert einer Variablen zu lesen, zu vermeiden.

Bitte beachten Sie, dass Sie zum Arbeiten mit Konstanten im Gegensatz zu Variablen das Konstrukt define() verwenden müssen.

String-Darstellung

Schauen wir uns die String-Darstellung falscher Konstanten an.
Durch die Verkettung werden die Werte beispielsweise in die folgenden Zeichenfolgen konvertiert, wie in der folgenden Tabelle dargestellt:

Das Thema Konvertieren in Strings wird auf der offiziellen Website im Abschnitt Konvertieren in String ausführlicher beschrieben.

Vergleichsoperatoren

Kommen wir zu den Vergleichsoperatoren.
Alle falschen Werte geben erwartungsgemäß true zurück, wenn sie mit dem Operator „==“ mit FALSE verglichen werden.
Allerdings sollte man sich hier nicht auf die Transitivität verlassen, wenn man falsche String-Konstanten miteinander vergleicht.
Hier ist eine vollständige Tabelle zum Vergleich falscher Werte (Plus kennzeichnet Tabellenelemente, die beim Vergleich mit dem Operator „!=“ einen wahren Wert zurückgeben:

$undef – eine Variable, der kein Wert zugewiesen wurde

Aus der Tabelle lassen sich einige erfreuliche Schlussfolgerungen ziehen:
1. Wenn wir wissen, dass wir nur Zeichenfolgen verwenden, können wir sie sicher vergleichen und müssen uns keine Sorgen machen, dass „“ (eine leere Zeichenfolge) gleich „0“ ist.
2. Arrays sind niemals gleich Strings, Ganzzahlen oder reellen Zahlen.

Da die Typen verschiedener falscher Konstanten unterschiedlich sind, kann ein Operatorpaar === und !== verwendet werden, um sie zu unterscheiden.
Der ===-Operator gibt für alle Paare falscher Werte „false“ zurück.
Gibt den wahren Wert nur für Argumente zurück, von denen einem der Wert NULL und dem zweiten kein Wert zugewiesen ist.

Unterschied zwischen Variablen mit NULL-Wert und undefinierten Variablen

Mit dem ===-Operator können Sie zwischen allen falschen Werten unterscheiden, mit Ausnahme von Variablen mit einem NULL-Wert und Variablen, denen kein Wert zugewiesen wurde.

Solche Variablen können mit der Funktion get_defined_vars() unterschieden werden.

Wenn Sie feststellen müssen, ob der Variablen $var ein Wert zugewiesen wurde, können Sie dazu den folgenden Codeausschnitt verwenden:
if (array_key_exists("var", get_definierte_vars())) ( echo "var ist definiert"; // $var ist NULL zugewiesen) else ( echo "var ist NICHT definiert"; // $var ist nicht definiert oder unset($ var) wurde aufgerufen)

Schlussfolgerungen

Sie sollten immer bedenken, dass in PHP zwei falsche Werte möglicherweise nicht gleich sind und Variablen, die auf den ersten Blick unterschiedlich erscheinen, sich beim Vergleich als gleich herausstellen können. Um solche Überraschungen zu vermeiden, können Sie die Operatoren === und !== verwenden.

Um Überraschungen zu vermeiden, können Sie bei der Arbeit mit Arrays eine Funktion schreiben, um Werte in garantiert unterschiedliche Indizes umzuwandeln. Danach ist der Zugriff auf die Elemente des Arrays nur noch darüber möglich. Dies kann das Programm verlangsamen, hilft aber, Überraschungen zu vermeiden.

Die Tests wurden mit PHP 5.3.1 durchgeführt.

Zusätzliche Links

1. PHP-Typvergleichstabellen.
2. MySQl Null- und Leerzeichenfolgen im Kontext von PHP.

Tags: Tags hinzufügen

Wenn Sie bei der Arbeit mit Strings prüfen müssen, ob ein String leer ist, nutzen Programmieranfänger in der Regel die Funktion strlen(). Diese Funktion ist recht schnell, da sie keine Berechnungen durchführt, sondern einfach den bereits bekannten Wert der Stringlänge zurückgibt, der in zval verfügbar ist (PHP verwendet eine C-Struktur zum Speichern von Variablen). Aber trotzdem, weil... strlen()- Dies ist eine Funktion, die etwas langsam ist, da beim Aufruf mehrere Aktionen erforderlich sind, z. B. das Konvertieren in Kleinbuchstaben und das Durchsuchen der Hash-Tabelle. In einigen Fällen können Sie die Ausführungsgeschwindigkeit Ihres Codes erhöhen, indem Sie verwenden leer()..., aber auch leer() Man kann es noch ein wenig optimieren.

Nehmen wir ein Beispiel Zum Beispiel Überprüfen des Bildpfads, prüft die Funktion, ob der Pfad leer ist, und ersetzt ihn dann durch einen anderen Pfad, zum Beispiel „images/noimage.jpg“.

Die ganze Aufgabe läuft also darauf hinaus, zu prüfen, ob eine Variable vom Typ String leer ist. Versuchen wir es mit 4 Möglichkeiten:

  • if(strlen($img_path)>0)
  • if($img_path(0))
  • if(empty($img_path))
  • und noch ein Weg zum Schluss.

Und so schreiben wir zunächst:

Funktion check_image_path($img_path) ( if (strlen ($img_path) >0) ( $img_path = "images/noimage.jpg" ; ) return $img_path ; )

Lassen Sie uns Tests durchführen, die durchschnittliche Testzeit dauerte 1.43795800209 Sek.

Denken Sie etwas genauer darüber nach ... Sie können auf einmal auf das erste Zeichen der Zeile zugreifen und nicht auf die gesamte Zeile. Wenn das erste Zeichen vorhanden ist, ist die Zeichenfolge nicht leer. Das erste Zeichen der Zeile wird mit „0“ nummeriert.

Funktion check_image_path($img_path) ( if ($img_path ( 0 ) ) ( $img_path = "images/noimage.jpg" ; ) return $img_path ; )

Die durchschnittliche Testzeit dauerte 1.19431300163 Sek., 17 % der gespielten Zeit

Versuchen wir jetzt, mit empty() zu schreiben:

Funktion check_image_path($img_path) ( if (empty ($img_path) ) ( $img_path = "images/noimage.jpg" ; ) return $img_path ; )

Die durchschnittliche Testzeit dauerte 1.1341319084 Sek., 5 % der abgespielten Zeit aus dem vorherigen Beispiel

Schauen wir uns nun das vorletzte und letzte Beispiel über uns an. Mal sehen, wie sich das kombinieren lässt. Denken Sie ... wie können Sie sonst noch optimieren?

Funktion check_image_path($img_path) ( if (empty ($img_path ( 0 ) ) ) ( $img_path = "images/noimage.jpg" ; ) return $img_path ; )

Die durchschnittliche Testzeit dauerte 1.07465314865 Sek., und wieder haben wir in 5 % der Fälle gewonnen ...

Wie funktioniert es und warum ist es schneller? Und hier $img_path(0) gibt das erste Zeichen zurück... und dann die Funktion leer() sucht nach einer leeren Zeichenfolge ... Der Unterschied zum vorherigen Beispiel besteht darin, dass nur ein Zeichen an die Funktion übergeben wird und nicht die gesamte Zeichenfolge. Somit haben wir vom ersten bis zum letzten Beispiel gewonnen 25% Zeit.