583 Shares 3405 views

PHP Praxis: String-Vergleich

PHP ist auf gute Informationen Handhabung konzentriert. Die Syntax der Sprache dargestellt ist voll funktionsfähig Satz von Vergleichsfunktionen, Stringverarbeitung, Vergleichsoperatoren.

Jeder Algorithmus – eine Abfolge von Entscheidungen und Handlungen. Aber bevor Sie eine Wahl treffen, müssen Sie etwas vergleichen es mit etwas. Line – der geräumigsten, effizienter und praktische Algorithmus Kontrollmechanismus. Linie – eine Variante der Datendarstellung. Ein Datum – das ist das Hauptthema der „Pflege“ eines Algorithmus.

Gewöhnliche Logik „-Vergleich-Aktion“

Im Allgemeinen dynamische Typisierung Zunge tut keine Unterschiede in den Daten, wie zum Beispiel PHP Vergleichsleitung und die Zahl ist nicht viel anders. Number – es ist auch eine Zeichenfolge, wenn es nur Zahlen enthält, zeigen und es gibt kein einziges Zeichen, das nicht verwendet wird, Zahlen in irgendeiner Form (mathematischer Notation) darzustellen.

Wenn kontenkatsii Nummer automatisch mit der Linie übergeht, keine Fragen gestellt und keine versteckten Fehler, auch wenn gettype () Funktion gibt die ‚integer‘ oder ‚double‘.

Jedoch gibt es einen Unterschied zwischen der Verwendung von is_int () und is_numeric (). Der erste gibt die Wahrheit, nur dann, wenn der Parameter eine ganze Zahl ist, zweitens, wenn eine Nummer oder numerischen Folge (Variablentyp ist ‚string‘, sondern umfasst alle bereitgestellten mathematischen Notation).

Dies ist ein einfaches Beispiel – ein gutes Beispiel dafür, wie ein PHP-String-Vergleichsoperatoren ( ‚==‘ ‚===‘ … ‚=‘!) Viele Überraschungen präsentieren. Die Variablen können ihren Typ verändern, sind sie nicht immer Zahlen, aber fast immer können sie mit der Leitung führen. Im Extremfall – es wird ein leerer String sein.

Basierend auf der oben, ist eine PHP-String-Vergleich-Funktion am beliebtesten ist. Was genau, wählen, um den Entwickler zu entscheiden. Es gibt viele Möglichkeiten zur Verfügung bis zu regulären Ausdrücken.

Die Grenzen der verfügbaren Funktions

PHP-Vergleich der beiden Reihen ist gut „tun“ -Funktion strpos () – Die günstigsten, die treuen und praktische Option. Wenn das Ergebnis der Funktionsnummer, dann eindeutig eine Zeichenfolge ist gleich zu einem anderen oder einem Teil zum anderen.

Radically gegenüber, sondern auch absolut der richtige Ansatz – die Verwendung von regulären Ausdrücken.

Wenn die Funktion $ cResult = scCheckFileName ($ CSTR) gibt ‚wahr‘, dann ist die Linie, die den Namen der Datei vordovsky. Er wird nur eine Möglichkeit der Expansion hat ‚.docx‘ und keine Zeichen im Namen: nur Buchstaben, Ziffern und die Zeichen ‚_‘, ‚-‘.

Die Funktion kann leicht auf andere Arten von Dateien umgewandelt werden: $ TKP = ‚/^([a-zA-Z…0-9-_]{4,239}).(html|js|css|png|jpg | docx | txt) {1} $ / u‘. Diese Variante erweitert die Abtastleitung herunterladbare Bereich (beispielsweise wird PHP Stringvergleich angewandt „Dateien auf einen Server zu laden, ohne die Möglichkeit des Eingabefehlers“) für HTML, JS, CSS, …

Mit Hilfe der strpos () und preg_match () – Extreme. Sie sind nicht direkt mit der Ausgabe der Vergleichsperiode bezogen. Aber die Frage der Algorithmus – ist eine Frage des eine Kombination aus Stil, Nutzung aller Möglichkeiten, um ein zuverlässiges und korrektes Ergebnis zu erzielen.

Funktionale PHP: String-Vergleich

Arsenal Sprache verglichen Saiten – eine reine, nicht nur die Vergleichsfunktion, sondern auch eine Kombination aus einer Suche oder Ersatz direkt. Nicht immer handelt mit dem Vergleich übereinstimmen müssen, da diese nicht zwangsläufig zu einer Änderung in einem beliebigen Zeile führen. Oft hat man den einen oder anderen Zweig des Algorithmus zu wählen.

Normale Variante PHP: String führt Vergleichsfunktion int strcmp (s1, s2).

Das Ergebnis der Funktion:

  • 0 – Zeile gleich sind;
  • -1 – der erste String kleiner als der zweite;
  • 1 – die erste mehr als die zweite Reihe.

In der Praxis bedeutet dies, dass ein Teil der ersten Reihe in den zweiten, von der PHP-Funktion (Vergleich Zeilen) entscheidet. Eine eingeschränkte Version von strpos (), weil im letzteren Fall ist es möglich, die Position des Eintrags zu kennen.

strcmp () Funktion – empfindlich. Wenn Sie die Zeichenfolge unempfindlichen, PHP bietet seinen strcasecmp () vergleichen möchten. Die Syntax ist ähnlich.

In der Praxis benötigte oft nicht mit der ganzen Linie zu arbeiten, aber nur einen Teil davon. Aus diesem Satz von Funktionen, PHP (string Vergleich) enthielt strncmp (s1, s2, N). Der dritte Parameter gibt den Vergleich nur N-Bytes durchzuführen. Das Ergebnis ist ähnlich strcmp ().

Arrays, Strings und Vergleichen

Diese sind fast immer durch Zeichenfolgen dargestellt. Wenn wir die Arrays, Objekte oder Datenstrukturen betrachten, dann ist es nur verschiedene Varianten von Kombinationen eines einfachen Zeichenkettenstruktur.

String-Arrays und Zeilen können in komplementärer Weise zur Verfügung gestellt werden. Transformation des Arrays in eine String Funktion implodieren (array, Symbol), zum Beispiel: $ margins1 = implodieren ( '', $ Stil-> getInnerMargin ()); … der Algorithmus / user …; $ Margins2 = implodieren ( '', $ Stil-> getInnerMargin ()) können Sie alle der Objektposition in der Zeichenfolge Position verschmelzen.

Anschließend können Sie die PHP-String-Vergleich durchführen und zu einem Zeitpunkt: $ check = strcmp ($ margins1, $ margins2) und stellen Sie sicher, dass der Algorithmus oder der Benutzer, der sich etwas geändert hat (oder nicht). Wenn Sie einen Vergleich in der üblichen Art und Weise durchführen, werden Sie Array-Elemente sortieren müssen. Es dauert länger und ist komplizierter.

Objekte und Linie

Noch spektakulärer Einsatz PHP (String-Vergleiche) über objektorientierte Ideen umgesetzt werden.

Die moderne Idee der Einrichtungen, deutet darauf hin, dass sie Eigenschaften und Methoden. Erstere werden in der Regel durch Zahlen, Strings, Arrays und andere Objekte dargestellt. Letztere enthalten häufig Aufnahmetechniken (Put) in der Wiederherstellungslinie und von der Linie (get).

Im Gegensatz zu Anordnungen, hat die Aufgabe, die Arbeit mit ihren eigenen Eigenschaften und interagiert mit anderen Objekten. Object „kompetent“, in dem seine Eigenschaften sind von echtem Mehrwert für den Algorithmus des Programms als Ganze.

Dieser Moment bietet eine Grundlage und Möglichkeit aufzuzeichnen, wenn eine Zeichenfolge nur die notwendigen Informationen aufnehmen, und in der Erholung der Linie alle Verarbeitungseigenschaften im gewünschten Zustand wiederherzustellen. Üblicherweise wird bei jedem Objekt gibt es umfangreiche Informationen und Arbeits (Zeit). Die Umsetzung dieser Idee können Sie nicht nur Speicher, um Speicherplatz sparen, um die Datenbank aufnehmen, sondern macht es auch möglich, die Linien einfachere und genauere Weise zu vergleichen.

Syntax und Semantik

PHP entwickelt sich dynamisch, und seine Funktionalität sowohl in Bezug auf den Vergleich Strings und ständig im Hinblick auf ihre Behandlung verbessert. Jedoch verhindert nichts einen Entwickler den Schwerpunkt im Bereich der Semantik zu bewegen.

Zweifellos ist die Funktionalität gut, aber ihre Verwendung kann im Sinne des Codes in Objekten übertragen werden. Wenn der Algorithmus als ein System der Interaktion zwischen Objekten dargestellt wird, sieht es viel besser als die Sequenzvergleiche und Aktionen in direkter Folge, klassischen Stil.