Grundlagen
Variablen werden in PHP durch ein Dollarzeichen gefolgt vom Variablennamen dargestellt. Bei Variablennamen muss die Groß-/Kleinschreibung beachtet werden, und chinesische Zeichen können ebenfalls zulässig sein.
Variablen werden standardmäßig immer nach Wert zugewiesen. PHP bietet auch eine andere Möglichkeit, Variablen Werte zuzuweisen: Referenzzuweisung. Das bedeutet, dass die neue Variable einfach auf die ursprüngliche Variable verweist (mit anderen Worten „Aliase“ oder „zeigt auf“). Das Ändern der neuen Variablen wirkt sich auf die ursprüngliche Variable aus und umgekehrt. Um die Referenzzuweisung zu verwenden, fügen Sie einfach ein kaufmännisches Und zur zuzuweisenden Variablen (der Quellvariablen) hinzu. Beachten Sie, dass nur benannte Variablen per Referenz zugewiesen werden können.
Vordefinierte Variablen
PHP verfügt über eine große Anzahl vordefinierter Variablen, von denen viele vom Server abhängen. Einige vordefinierte Variablen werden nicht wirksam, wenn sie über die Befehlszeile ausgeführt werden.
PHP stellt einen zusätzlichen Satz vorgegebener Arrays bereit. Diese Array-Variablen enthalten Daten vom Webserver (falls verfügbar), der laufenden Umgebung und Benutzereingaben. Sie werden oft als Autoglobals oder Superglobals bezeichnet.
Variabler Umfang
Der Variablenbereich bezieht sich hier auf den Kontext, in dem er definiert ist, d. h. auf seinen effektiven Gültigkeitsbereich. Der Umfang der Variablen umfasst Dateien, die durch include und require eingeführt werden.
Die globalen Variablen von PHP unterscheiden sich ein wenig von der C-Sprache. In der C-Sprache werden globale Variablen automatisch in Funktionen wirksam, sofern sie nicht durch lokale Variablen überschrieben werden. Globale Variablen in PHP müssen global deklariert werden, wenn sie in Funktionen verwendet werden.
<code><?php $a = 'hello'; function test() { var_dump($a); } // test(); include 'b.inc';</code>
b.inc
Der Inhalt ist wie folgt:
<code><?php echo 'hello'; ?></code>
Das Programm kann hello
normal ausgeben, aber das auskommentierte test()
kann nicht normal analysiert werden, da die Variable $a undefiniert ist.
Globale Variablen verwenden
Wenn Sie globale Variablen in einer Funktion verwenden möchten, können Sie die folgenden zwei Methoden verwenden.
<code>global $a, $b;</code>
Wenn eine globale Variable in einer Funktion deklariert wird, verweisen alle Verweise auf eine beliebige Variable auf ihre globale Version.
<code>$GLOBALS['b'] = $GLOBALS['a'] + $BLOBALS['b'];</code>
Die Verwendung ähnelt dem globalen Schlüsselwort.
Statische Variablen
Statische Variablen existieren nur im lokalen Funktionsbereich, ihre Werte gehen jedoch nicht verloren, wenn die Programmausführung diesen Bereich verlässt. Darüber hinaus wird es bei der Deklaration nur einmal initialisiert und der Wert der statischen Funktion wird nicht bei jedem Aufruf der Funktion überschrieben.
Das Zuweisen einer statischen Variablen mit dem Ergebnis eines Ausdrucks in der Deklaration führt zu einem Analysefehler. Statische Deklarationen werden zur Kompilierungszeit analysiert.
<code><?php function test() { static $cnt = 0; echo $cnt; $cnt++; if($cnt < 10) { test(); } $cnt--; } test();</code>
Ähnlich wie statisch in der C-Sprache kann der folgende C-Code auch zehn Zahlen von 0 bis 9 nacheinander ausgeben.
<code>#include <stdio.h> void test(void) { static int cnt = 0; printf("%d ", cnt); cnt++; if(cnt < 10) { test(); } cnt--; } int main(void) { test(); return 0; }</code>
Die statischen und globalen Definitionen von Variablen werden durch Referenz implementiert.
Variable Variablen
Variablenvariablen sind eine besondere Verwendung in der PHP-Sprache. Ich weiß nicht, ob es sie in anderen Sprachen gibt.
Kurz gesagt ist eine variable Variable eine variable Variable, die den Wert einer gewöhnlichen Variablen als Variablennamen der variablen Variablen erhält.
<code><?php $a = 'hello'; $$a = 'world'; echo "$a $$a"; // hello $hello echo "$a ${$a}"; // hello world</code>
Bei der Verwendung veränderlicher Variablen mit Arrays können mehrdeutige Probleme auftreten. Wenn Sie beispielsweise $$a[1]
schreiben, meldet der Compiler einen Fehler. Die Bedeutung, die Sie ausdrücken möchten, muss auf die folgenden zwei Arten ersetzt werden.
${$a[1]}
$a[1] als Variable
${$a}[1]
$$a wird als Variable verwendet und entnimmt den Wert mit Index 1 in der Variablen.
Formularvariablen
Wenn ein Formular an ein PHP-Skript gesendet wird, sind die Informationen im Formular automatisch im Skript verfügbar und können über $_GET[]
, $_POST[]
und $_REQUEST[]
abgerufen werden.
Beachten Sie, dass Punkte und Leerzeichen in Variablennamen in Unterstriche umgewandelt werden. Beispielsweise wird <input name="a.b">
zu $_REQUEST["a_b"]
. Das folgende Beispiel zeigt die Verwendung von Bezeichnern in Formularen.
<code><form action="process.php" method="post"> <input name="my.text" type="text"> <input name="my text" type="text"> <input name="my_text" type="text"> <input type="submit"> </form></code>
Formularverarbeitungsdateienprocess.php
.
<code><?php var_dump(isset($_POST['my.text'])); var_dump(isset($_POST['mytext'])); var_dump(isset($_POST['my_text'])); var_dump($_POST['my_text']);</code>
Da der Punkt in PHP-Variablennamen kein zulässiges Zeichen ist, sieht die Ausgabe wie folgt aus.
<code>boolean false boolean false boolean true string 'h3' (length=2)</code>
magic_quotes_gpc
Die Konfigurationsanweisung wirkt sich auf den Wert von get/post/cooie aus. Diese Funktion ist veraltet und wird nicht mit Escapezeichen versehen. Wenn Sie ein Escapezeichen benötigen, verwenden Sie addslashes()
. Wenn Sie eine Zeichenfolge in Anführungszeichen setzen müssen, verwenden Sie stripslashes()
.
PHP versteht Arrays auch im Kontext von Formularvariablen. Das folgende Beispiel verwendet eine komplexere Formularvariable, sendet das Formular an sich selbst und zeigt die Daten bei der Übermittlung an.
<code><?php if(isset($_POST['action'])) { var_dump($_POST); } else { $page = $_SERVER['PHP_SELF']; $s = <<<STR <form action="{$_SERVER['PHP_SELF']}" method="post"> <input type="text" name="personal[name]"> <input type="text" name="personal[detail]"> <select multiple name="option[]"> <option value="a">a</option> <option value="b">b</option> <option value="c">c</option> </select> <input type="hidden" name="action" value="submitted"> <input type="submit" name="submit"> </form> STR; echo $s; }</code>
Seien Sie besonders vorsichtig, wenn Sie komplexe Variablen im Heredoc enthalten $_SERVER['PHP_SELF']
ohne geschweifte Klammern, wenn es ausgeführt wird.
<code>array (size=4) 'personal' => array (size=2) 'name' => string 'hello' (length=5) 'detail' => string 'world' (length=5) 'option' => array (size=2) 0 => string 'a' (length=1) 1 => string 'c' (length=1) 'action' => string 'submitted' (length=9) 'submit' => string '提交查询内容' (length=12)</code>
BILD-Einreichung
Beim Absenden eines Formulars können Sie die Standard-Senden-Schaltfläche durch ein Bild ersetzen. Als ich es zum ersten Mal benutzte, war es wirklich magisch.
<code><?php if(isset($_POST['action'])) { var_dump($_POST); } else { $s = <<<STR <form action="{$_SERVER['PHP_SELF']}" method="post"> <input type="hidden" name="action" value="1"> <input type="image" src="go.jpg" name="sub"> </form> STR; echo $s; }</code>
Wenn der Benutzer für das obige Programm irgendwo auf das Bild klickt, wird das Formular an den Server gesendet und zwei Variablen sub_x
und sub_y
hinzugefügt, die die Koordinaten des Bildes enthalten, auf das der Benutzer geklickt hat An.
<code>array (size=3) 'action' => string '1' (length=1) 'sub_x' => string '334' (length=3) 'sub_y' => string '282' (length=3)</code>
Cookies
PHP kann Cookies mithilfe der Funktion setcookie()
setzen. Cookies sind Teil des HTTP-Headers und müssen daher aufgerufen werden, bevor eine Ausgabe an den Browser gesendet wird.
Die relevante Verwendung von Cookies ist wie folgt.
<code><?php if(isset($_COOKIE['cnt'])) { $cnt = $_COOKIE['cnt'] + 1; echo $cnt; } else { $cnt = 1; } setcookie('cnt', $cnt, time() + 3600);</code>
cookie数据在相应的cookie数组中可用,如果将多个值赋给一个cookie变量,必须将其赋成数组。
(全文完)
以上就介绍了变量 - PHP手册笔记,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。