Neuzeilensymbol im String
Obwohl PHP eine Escape-Escape-Sequenz (
) für das Newline-Symbol bereitstellt, ist es auch gut zu wissen dass man buchstäblich Zeilenumbrüche mitten in Strings einfügen kann, und PHP kann damit auch umgehen. Dies ist beim Erstellen von HTML-Zeichenfolgen praktisch, da Browser Zeilenumbrüche (
) ignorieren. Sie können die Zeichenfolge also mit Zeilenumbrüchen formatieren, um PHP-Codezeilen kürzer zu machen:
Drücken Sie im Texteditor die „Enter“-Taste, die am Ende der ersten beiden Zeilen versteckt ist. Diese Newline-Symbole bleiben in der Zeichenfolge erhalten, sodass eine print-Anweisung drei Zeilen erzeugt der PHP-Ausgabe (die Länge der Zeilen variiert je nach Editor; wenn der Editor bei der Anzeige automatisch umbricht, werden Sie tatsächlich drei lange Codezeilen sehen). Das Browserprogramm ignoriert diese Zeilenumbrüche jedoch und entscheidet selbst, ob und wo die Zeile bei der Anzeige umgebrochen wird. Wenn Sie außerdem die Quellcodeansicht Ihres Browsers verwenden, um den Quellcode zu beobachten, werden Ihnen diese Zeilenumbrüche angezeigt.
Einschränkungen
Es gibt keine künstliche Begrenzung der Zeichenfolgenlänge, solange sie innerhalb des verfügbaren Speicherlimits liegt. Im Allgemeinen sollte es keine Begrenzung der Zeichenfolgenlänge geben
Array
Der Array-Typ von PHP ermöglicht es Programmierern, Werte vieler verschiedener Typen zusammen zu organisieren und sie nach Wort (oder nach Namen) zu indizieren. Wenn Sie Variablen mit Namen wie $thing1, $thing2, $thing3 verwenden, wird die Verwendung von Arrays ($things[1], $thing[2], $thing[3] usw.) empfohlen. Der Zugriff auf Array-Elemente erfolgt über Indizes in eckigen Klammern (in diesem Beispiel [1], [2], [3] usw.), und Elemente unterschiedlichen Typs können demselben Array zugewiesen werden.
Der beste Weg, PHP-Arrays zu lernen, sind Beispiele. Im Folgenden finden Sie einige einfache Programmbeispiele, um den Inhalt von Array-Variablen vor und nach der ersten Spezifikation anzuzeigen:
Lassen Sie uns erklären, was vor und nach der ersten Aufgabe passiert. Vor der Angabe weiß PHP trotz des Namens nicht, dass die Variable $my_array ein Array sein soll, und behandelt sie einfach wie andere Variablen als nicht spezifizierte Variable. Dies bedeutet, dass die Variable als leere Zeichenfolge interpretiert wird, wenn die Variable in einer Zeichenfolge in doppelte Anführungszeichen eingeschlossen ist. Wenn der Array-Index auf eine nicht spezifizierte Variable ([5]) verweist, wird er auch als nicht spezifizierte Variable verwendet. Das Ergebnis ist, dass die ersten drei Druckanweisungen alle mit [is] enden.
Nach der Angabe wird $my_array offiziell zu einem Array, und das Ergebnis besteht darin, die Zeichenfolge „Array“ auszugeben, wenn eine Zeichenfolge in doppelte Anführungszeichen enthalten ist. Die mit der Nummer 5 indizierte Array-Zelle wurde mit der Zeichenfolge „Slot#6“ gefüllt (tatsächlich werden Array-Elemente in den meisten Programmiersprachen beginnend bei 0 gezählt), sodass die Indexnummer 5 zum Abrufen der Zeichenfolge verwendet werden kann. Dies ist das Einzige, was sich geändert hat – es gibt immer noch nichts in Zelle 0 von $my_array, also gibt es keine Änderung wie zuvor.
Ausführung von Arrays
Arrays sind eine der coolsten und nützlichsten Funktionen von PHP. Obwohl sie Arrays in anderen Sprachen ähneln, sind sie tatsächlich recht umständlich zu implementieren.
In den meisten Programmiersprachen wird eine Anweisung ähnlich der folgenden verwendet, um ein Array zu deklarieren:
Int int_array[10];//Dies ist keine PHP-Syntaxharmonie!
Diese Anweisung legt insgesamt zehn aufeinanderfolgende Ganzzahlen im Speicher fest. Auf diese Variablen kann entsprechend dem Zahlenindex im int_array-Bereich von 0 bis 9 zugegriffen werden.
Andererseits können PHP-Arrays miteinander kombiniert werden. Wenn Sie ein Array angeben, fügen Sie tatsächlich eine neue Spalte hinzu und kombinieren sie mit einem neuen Index. Dieser Index kann verwendet werden, um diesen Wert zu erhalten ist für Programmierer sinnvoll, die mit Hash-Tabellen vertraut sind, PHP-Arrays ähneln eher Hash-Tabellen in anderen Sprachen.]
Dies impliziert eines: Der Leser muss sich keine Gedanken über die Angabe einer sehr hohen Anzahl von Array-Zellen machen, zum Beispiel:
My_ayyay[100000000]= „nicht beängstigend“/ /Das ist kein Problem
Denn das Ergebnis einer solchen Einstellung ist, dass es nicht wirklich viele Gitter gibt. Diese Gitter in der Mitte existieren nicht, also belegen sie keinen Speicher.
String als Array-Index
Bisher verwenden unsere Array-Beispiele nur ganze Zahlen, um Zahlen zu indizieren. Tatsächlich kann PHP auch String-Werte als Indizes verwenden, zum Beispiel:
$tasty['Spanish']= "paella";
$tast ['Japanese']= "sashimi";
$tast ['Scottish']= "haggis" ? ";
Diese Indizes werden auf die gleiche Weise wie numerische Indizes verwendet, und numerische und String-Indizes können ohne Konflikte im selben Array verwendet werden.
Warum fehlt der Strukturtyp?
Einige Programmiersprachen (C, Pascal) bieten „Struktur“- oder „Datensatz“-Typen, sodass Variablen unterschiedlichen Typs zusammengepackt werden können. In einer solchen Sprache lautet die grundlegende Faustregel für die Auswahl eines zusammengesetzten Typs: Wenn alle Werte, die die Wassermenge enthalten, vom gleichen Typ sind, andernfalls verwenden Sie eine Struktur.
PHP verfügt nun über einen Objekttyp, der neben weiteren speziellen Attributen auch ähnliche Eigenschaften wie Datensätze oder Strukturtypen aufweist. Vor der Einführung von Objekten benötigt PHP jedoch nicht wirklich Strukturtypen, da PHP-Arrays nicht auf die Verwendung nur eines Werttyps beschränkt sind. Wenn Sie ein Codewörterbuch von einer strukturierten Sprache nach PHP verschieben, besteht eine Möglichkeit darin, kombinierbare Arrays und Zeichenfolgenindizes zu verwenden, um den ursprünglichen Feldnamen zu entsprechen.
Andere Array-Funktionen
In diesem Kapitel werden Arrays tatsächlich nur kurz vorgestellt. Darüber hinaus können Arrays auch mehrdimensional sein und auf viele verschiedene Arten angegeben werden, und es gibt viele nützliche Funktionen, die verwendet werden können Arrays sind einfacher zu beobachten, wiederzuverwenden und zu manipulieren. Arrays werden in Kapitel 11 dieses Buches ausführlicher erläutert.
Objekt
Ein weiterer Grundtyp von PHP ist Objekt, das den Kanal für PHP darstellt, um in die objektorientierte Programmiersprache einzutreten. Wie ein Array ist auch ein Objekt ein zusammengesetzter Typ und ermöglicht die Integration verschiedener anderer Typen in ein Objekt. Das Objekt verfügt über zusätzliche und präzisere Eigenschaften, einschließlich der Fähigkeit, Funktionen als Daten zu integrieren, und es können andere Objektorientierungskonzepte verwendet werden Weitere Informationen finden Sie in diesem Abschnitt.
Ressourcen
Ressourcen ist ein spezieller Wert, der sich auf Speicher außerhalb von PHP selbst bezieht. Sie müssen nicht viel über Ressourcen wissen, um PHP zu schreiben. Wir werden alle Möglichkeiten kurz vorstellen. Überspringen Sie jedoch gerne den Abschnitt „Was tun mit Ressourcen?“ weiter unten.
Was sind Ressourcen?
Ressourcen sind der Typ, den PHP für die Kommunikation mit externen Programmen verwendet (bei denen es sich um Datenbanken oder Bildverarbeitungsprogramme handeln kann). Im Allgemeinen müssen PHP-Programmierer die im Speicher konfigurierten Ressourcen verwenden Sie müssen sich beim PHP-Design um die Speicherfreigabe kümmern. Wenn Sie in einem PHP-Programm einen String generieren (der einen Teil des Speicherorts belegen muss), können Sie alle seine Details bis zum Ende des Programms (oder des installierten PHP) vergessen Server) gibt den entsprechenden Speicher frei, nachdem die Ausführung Ihres Programms abgeschlossen ist, wenn auch nicht sofort.
Externe Programme (Datenbanken usw.) können möglicherweise nicht so intelligent Speicher freigeben. Nachdem Ihr Programm ausgeführt wurde, denken Sie möglicherweise darüber nach, geeigneten Speicher für Ihre Datenbank zu reservieren. Die Art und Weise, wie PHP damit umgeht, ist Alle speziellen Funktionen, die von externen Programmen auf den Speicher zugreifen Geben Sie so Ressourcen zurück und lassen Sie PHP prüfen, ob Ihr Programm auf die Ressourcen zugreifen kann. Wenn niemand die Ressourcen verwenden kann, wird PHP dies tun, indem es die Ressourcen zählt. Die Referenz der Ressource ermöglicht es externen Programmen, diese Art von Problem korrekt zu lösen. Wenn der Referenzzähler 0 ist, kann die Ressource freigegeben werden.
Wie gehe ich mit Ressourcen um?
Normalerweise müssen PHP-Programmierer diese Ressourcen nicht selbst erstellen. Sie geben diese Ressourcentypen zurück, indem sie einige spezielle Funktionen aufrufen, und übergeben sie an andere Funktionen, die Ressourcentypen erfordern. Sie könnten beispielsweise (wie wir in Teil 2 dieses Buches behandeln werden) die Funktion mysql_connect() aufrufen (die die Verbindung zur MySQL-Datenreferenz zurückgibt), das Ergebnis in einer Variablen speichern und es an mysql_query() übergeben. Funktion (verwenden Sie diese Verbindung, um auf die Datenbank zuzugreifen).
Um diese Verbindungsressource zu verwenden, müssen Sie sie im Grunde nur in einer Variablen speichern und an die erforderliche Funktion übergeben. Sie können sie über PHP löschen, nachdem das Programm beendet ist. Wenn Sie auf jeden Fall das Gefühl haben, dass diese Ressource während der Programmausführung viel Speicher erschöpft hat und sie vorzeitig vor Programmende freigeben möchten, sollten Sie so etwas tun:
$my_resource=mysql_connect(); //Speichervariablen
//Programmfragmente, die Verbindungsressourcen verwenden
$my_resource=NULL;//Variablen verweisen nicht mehr auf die ursprüngliche Ressource
Die Spezifikation von $my_resource bewirkt, dass PHP vor der Freigabe prüft, ob kein anderes Programm die MySQL-Ressource verwendet.
Typtest
Da Variablen ihren Typ durch Neuzuweisung ändern können, ist es manchmal notwendig, den Typ eines bestimmten Werts herauszufinden, wenn das Programm ausgeführt wird. PHP bietet nicht nur eine allgemeine Typtestfunktion (gettype()), sondern auch boolesche Funktionen für jeden der fünf Datentypen. Einige dieser Funktionen haben auch austauschbare Namen. Tabelle 6-1 fasst diese Funktionen zusammen:
Tabelle 6-1 Typprüfung von Funktionen
Spezifikation und Zwang
Wie bereits erwähnt, konvertiert PHP bei Bedarf in diesem Artikel häufig automatisch einen Typ in einen anderen, aber PHP-Programmierer können dies auch erzwingen. In jedem Fall sollte der Programmentwickler wissen, welche Ergebnisse er erwarten kann.
Typkonvertierungsverhalten
Hier sind einige allgemeine Regeln für die Konvertierung von einem Typ in einen anderen in PHP:
Ganzzahl in Gleitkommazahl mit mehrfacher Genauigkeit: Erstellen einer genauen Übereinstimmung. Doppelte Genauigkeit Gleitkommazahl (z. B. wird int4 zu double4.0 mal).
Gleitkommazahl mit doppelter Genauigkeit in Ganzzahl umwandeln: Der Dezimalteil wird gerundet.
Zahl zu Boolean: FALSE, wenn gleich 0, andernfalls TRUE.
Zahl in Zeichenfolge: Die Zeichenfolge wird so erstellt, wie die Zahl bei der Anzeige aussehen wird. Die Ganzzahlausgabe wird als Zahlenfolge mit der minimal erforderlichen Genauigkeit angezeigt. Gleitkommawerte mit doppelter Genauigkeit und einer großen Anzahl von Zeichen nach dem Dezimalpunkt werden in die symbolische Kasaken-Notation umgewandelt .
Boolean zu Zahl: Wenn TRUE, erhalten Sie 1, wenn FALSE, erhalten Sie 0.
Boolescher String: Wenn er TRUE ist, erhalten Sie 1, wenn er FALSE ist, erhalten Sie einen leeren String.
NULL zu Zahl: 0
NULL zu Boolean: FALSE
String zu Zahl: entspricht dem „Lesen“ einer Zahl aus dem String und dem anschließenden Austauschen in einen bestimmten Typ . Wenn die Zahl nicht gelesen werden kann, ist der Wert 0; es müssen nicht alle Zeichenfolgen gelesen werden, um erfolgreich zu sein.
String zu Boolean: FALSE, wenn es sich um einen leeren String handelt, oder 0, andernfalls TRUE.
Arrays einfacher Typen (Zahlen oder Zeichenfolgen): Entspricht dem Erstellen eines neuen Arrays mit dem dem Index 0 zugewiesenen Wert.
Array zu Zahl: Undefiniert (siehe Beschreibung unten)
Array zu Boolean: FALSE, wenn das Array keine Elemente hat, andernfalls TRUE.
Array zu String: Das ist „Arryay“.
Objekt zu Nummer: Undefiniert (siehe Beschreibung unten).
Objekt zu Boolean: TRUE, wenn das Objekt eine Mitgliedsvariable mit einem Wert enthält, andernfalls FALSE.
Objekt zu String: „Objekt“.
Ressource zu Boolean: FALSE.
Ressource zu Nummer: Undefiniert (siehe unten für Details)
Ressource zu Nummer: Manchmal wie „Ressourcen-ID Nr. 1“ (aber Sie können sich nicht stark auf diese Konvention verlassen).
In der obigen Liste haben wir festgestellt, dass einige Typen bei der Konvertierung in numerische Typen undefiniert sind. In der obigen Beschreibung bedeutet undefiniert, dass die PHP-Designer in der vorherigen PHP-Version nichts angegeben haben Die schlechte Nachricht ist also, dass es davon abhängt, wie Sie Ihr Programm schreiben. Möglicherweise können Sie in der von Ihnen verwendeten PHP-Version in einen numerischen Typ konvertieren, in der nächsten Version funktioniert dies jedoch möglicherweise nicht.
Das Obige ist der Inhalt des PHP-Lernhandbuchs – Kapitel 6 (Fortsetzung). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!