Heim >Backend-Entwicklung >PHP-Problem >Welche Methoden gibt es zum Definieren von Variablen in PHP?
So definieren Sie PHP-Variablen: 1. Verwenden Sie die Anweisung „define(name, value, case_insensitive)“; 2. Verwenden Sie die Anweisung „$ variable name = value;“ "-Anweisung; 4. Verwenden Sie die Anweisung „$$ variable name = value;" usw.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
So definieren Sie PHP-Variablen
Konstante define();
define(name,value,case_insensitive)
definieren
Konstante Kann nur Skalardaten enthalten (boolesche Werte, Ganzzahlen, Gleitkommazahlen und Zeichenfolgen).
Wenn Sie eine Konstante aufrufen, müssen Sie nur den Namen verwenden, um den Wert der Konstante zu erhalten, anstatt das Symbol „$“ hinzuzufügen, wie zum Beispiel: echo CONSTANT;Hinweis: Konstanten und (globale) Variablen sind in verschiedene Namensräume. Das bedeutet zum Beispiel, dass TRUE und $TRUE unterschiedlich sind.
Normale Variable $a = „Hallo“;Variable Variable (mit zwei Dollarzeichen ($))
$$a = „Welt“
Beide Variablen sind definiert:
Der Inhalt von $a ist „Hallo“ und der Inhalt von $hello ist „Welt“.
Daher kann es ausgedrückt werden als:
echo "$a ${$a}";
oder echo "$a $hello";
Sie werden beide ausgeben : hello world
Um veränderliche Variablen mit Arrays zu verwenden, muss eine Mehrdeutigkeit behoben werden. Beim Schreiben von $$a[1] muss der Parser also wissen, ob er $a[1] als Variable oder $$a als Variable möchte und die Variable mit dem Indexwert [1] extrahiert. Die Syntax zur Lösung dieses Problems besteht darin, ${$a[1]} für den ersten Fall und ${$a}[1] für den zweiten Fall zu verwenden. echo "$a ${$a}";
或者 echo "$a $hello";
它们都会输出:hello world
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。
静态变量
在函数内部static $a = 0;
注意:声明中用表达式的结果对其赋值会导致解析错误如static $a =3+3;(error)
静态变量仅在局部函数域中存在(函数内部),函数执行完之后,变量值不会丢失,可用于递归调用
全局变量
在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,在全局范围内访问变量可以用特殊的 PHP 自定义 $GLOBALS 数组:
如:
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
在一个函数域内用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用
global $obj;
注:对于变量的 static 和 global 定义是以 应用 的方式实现的
给变量赋值:传地址赋值(简单引用):
$bar = &$foo; //加&符号到将要赋值的变量前
改动新的变量将影响到原始变量,这种赋值操作更加快速
注意:只有命名变量才可以传地址赋值
注意:如果
$bar = &$a; $bar = &$foo;
改变$bar的值只能改变变量foo的值,而不改变a的值(引用改变了)
PHP 超全局变量$GLOBALS :
包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键标为全局变量的 名称。从 PHP 3 开始存在 $GLOBALS 数组。
$_SERVER : 变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用)。
$_GET : 经由 HTTP GET 方法提交至脚本的变量。
$_POST : 经由 HTTP POST 方法提交至脚本的变量。
$_COOKIE : 经由 HTTP Cookies 方法提交至脚本的变量。
$_FILES : 经由 HTTP POST 文件上传而提交至脚本的变量。
文件上传表单中要有 enctype="multipart/form-data"
Statische Variable
statische $a = 0 Hinweis: Die Zuweisung mit dem Ergebnis eines Ausdrucks in der Deklaration führt zu Analysefehlern wie statische $a =3+3 (Fehler) statische Variablen Nur in der lokalen Funktionsdomäne (innerhalb der Funktion) vorhanden, geht der Variablenwert nicht verloren und kann für rekursive Aufrufe verwendet werden. Globale Variablen können im Funktionskörper definiert werden Außerhalb der Funktion definierte globale Variablen können nicht innerhalb des Funktionskörpers verwendet werden. Um auf Variablen im globalen Bereich zuzugreifen, können Sie spezielles PHP verwenden, um das $GLOBALS-Array anzupassen: Zum Beispiel:disable_functions = phpinfo()A real globale Variable mit der globalen Anweisung in eine Funktionsdomäne importiert Tatsächlich wird eine Referenz auf die globale Variable hergestellt
<?PHP define("CONSTANT", "Hello world."); echo CONSTANT; // outputs "Hello world." echo Constant; // outputs "Constant" and issues a notice. ?>Hinweis: Die statischen und globalen Definitionen von Variablen werden anwendungstechnisch implementiert Weisen Sie der Variablen einen Wert zu: Adresszuweisung übergeben (einfache Referenz):
rrreee
Änderung Die neue Variable wirkt sich auf die ursprüngliche Variable aus, und dieser Zuweisungsvorgang ist schneller. Hinweis: Wenn 🎜rrreee🎜 Ändert den Wert von $bar, es kann nur den Wert der Variablen foo ändern, nicht den Wert der Variablen foo. Ändern Sie den Wert von a (die Referenz ändert sich) 🎜🎜🎜PHP superglobale Variable $GLOBALS🎜: 🎜🎜Enthält a Referenz, die auf jede Variable verweist, die im globalen Bereich des aktuellen Skripts gültig ist. Die Schlüssel dieses Arrays sind die Namen globaler Variablen. Das Array $GLOBALS existiert seit PHP 3.enctype="multipart/form-data"
🎜🎜$_ENV haben: die Variable, die von der Ausführungsumgebung an das Skript übermittelt wird. 🎜🎜$_REQUEST: Variablen, die über GET-, POST- und COOKIE-Mechanismen an das Skript übermittelt werden, daher ist dieses Array nicht vertrauenswürdig. Das Vorhandensein, Fehlen und die Reihenfolge aller in diesem Array enthaltenen Variablen werden gemäß der Konfigurationsanweisung „variables_order“ in php.ini definiert. Dieses Array emuliert frühere Versionen von PHP 4.1.0 nicht direkt. 🎜🎜Hinweis: Ab PHP 4.3.0 sind die Dateiinformationen in $_FILES nicht mehr in $_REQUEST vorhanden. 🎜🎜$_SESSION: Variable, die derzeit für die Skriptsitzung registriert ist. 🎜🎜So deaktivieren Sie phpinfo(): 🎜🎜php.ini 🎜rrreee🎜Starten Sie den Webserver neu. 🎜🎜🎜🎜Konstanten in PHP 🎜🎜🎜🎜Konstanten können nur define (Konstantenname, Konstantenwert) verwenden; 🎜🎜Konstanten können nur skalare Daten (Boolean, Ganzzahl, Float und String) enthalten. 🎜可以简单的通过指定其名字来取得常量的值,不要在常量前面加上 $ 符号。如果常量名是动态的,也可以用函数
constant() 来读取常量的值。用 get_defined_constants() 可以获得所有已定义的常量列表。
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 "CONSTANT")。此时将发出一个 E_NOTICE 级的错误。参见手册中为什么 $w3sky[bar] 是错误的(除非事先用 define() 将 bar 定义为一个常量)。如果只想检查是否定义了某常量,用 defined() 函数。
常量和变量不同:
* 常量前面没有美元符号($);
* 常量只能用 define() 函数定义,而不能通过赋值语句;
* 常量可以不用理会变量范围的规则而在任何地方定义和访问;
* 常量一旦定义就不能被重新定义或者取消定义;
* 常量的值只能是标量。
定义常量
<?PHP define("CONSTANT", "Hello world."); echo CONSTANT; // outputs "Hello world." echo Constant; // outputs "Constant" and issues a notice. ?>
推荐学习:《PHP视频教程》
Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es zum Definieren von Variablen in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!