Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen Zuweisung nach Wert und Zuweisung nach Referenz in PHP?

Was ist der Unterschied zwischen Zuweisung nach Wert und Zuweisung nach Referenz in PHP?

伊谢尔伦
伊谢尔伦Original
2017-07-17 16:41:562121Durchsuche

Zuweisung nach Wert : Beim Zuweisen des Werts eines Ausdrucks zu einer Variablen wird der Wert des gesamten Originalausdrucks der Zielvariablen zugewiesen. Dies bedeutet, dass sich beispielsweise die Änderung des Werts einer Variablen, während der Wert einer Variablen einer anderen Variablen zugewiesen ist, nicht auf die andere Variable auswirkt.

<?php 
$a=123; $a=123; 
$b=$a; $b=&$a; 
$a=321; $a=321; 
Echo”$a,$b”;//显示”321,123” Echo”$a,$b”;//显示”321,321” 
?>

Referenzzuweisung: Die neue Variable verweist einfach auf die ursprüngliche Variable. Wenn Sie die Referenzzuweisung verwenden, fügen Sie einfach ein &-Symbol zur zuzuweisenden Variablen hinzu. Vorher (Quellvariable)
Typtrick PHP erfordert keine expliziten Typdefinitionen in Variablendefinitionen; der Variablentyp wird basierend auf dem Kontext bestimmt, in dem die Variable verwendet wird. Das heißt, wenn Sie der Variablen var einen String-Wert zuweisen, wird var zu einem String. Wenn Sie var einen ganzzahligen Wert zuweisen, wird daraus eine Ganzzahl.
Typumwandlung
Die zulässigen Umwandlungen sind: (int), (integer) – konvertiert in Integer (bool), (boolean) – konvertiert in Boolean (float), (double), (real) – konvertiert in Floating Punkttyp (String) – In String (Array) konvertieren – In Array (Objekt) konvertieren – In Objekt konvertieren Settype() für Typkonvertierung
Funktion Settype()

<?php 
$foo = "5bar"; // string 
$bar = true; // boolean 
settype($foo, "integer"); // $foo 现在是 5 (integer) 
settype($bar, "string"); // $bar 现在是 "1" (string) 
?>

Variablenbereich Der Gültigkeitsbereich einer Variablen ist der Kontext, in dem sie definiert ist (d. h. ihr effektiver Gültigkeitsbereich). Die meisten PHP-Variablen haben nur einen einzigen Gültigkeitsbereich. Dieser einzelne Bereich umfasst auch Dateien, die durch include und require eingeführt wurden.
Statische Variable Ein weiteres wichtiges Merkmal des Variablenbereichs ist die statische Variable. Statische Variablen existieren nur im lokalen Funktionsbereich, ihre Werte gehen jedoch nicht verloren, wenn die Programmausführung diesen Bereich verlässt.
Array Ein Array in PHP ist eigentlich ein geordneter Graph. Ein Diagramm ist ein Typ, der Werte Schlüsseln zuordnet. Dieser Typ ist in vielerlei Hinsicht optimiert, sodass er als echtes Array, als Liste (Vektor), als Hash-Tabelle (eine Implementierung eines Diagramms), als Wörterbuch, als Menge, als Stapel, als Warteschlange und vieles mehr verwendet werden kann mehr Möglichkeiten. Da Sie ein anderes PHP-Array als Wert verwenden können, können Sie auch problemlos einen Baum simulieren.
Array() definieren Sie können die Sprachstruktur array() verwenden, um ein neues Array zu erstellen. Es akzeptiert eine Reihe von durch Kommas getrennten Schlüssel => Wertparameterpaaren.
array( key => value , ... )
// key kann eine ganze Zahl oder eine Zeichenfolge sein
// value kann ein beliebiger Wert sein

<?php // 现在删除其中的所有单元,但保持数组本身的结构 
// 创建一个简单的数组 foreach ($array as $i => $value) { 
$array = array(1, 2, 3, 4, 5); unset($array[$i]); 
print_r($array); } 
print_r($array); 
// 添加一个单元(注意新的键名是 5,而不是你可能以为的 0) 
$array[] = 6; 
print_r($array); // 重新索引: 
$array = array_values($array); 
$array[] = 7; 
print_r($array); 
?>

unset()-Funktion erlaubt Entfernen Sie einen Schlüssel aus einem Array. Beachten Sie, dass das Array nicht neu indiziert wird.

<?PHP 
$a = array( 1 => &#39;one&#39;, 2 => &#39;two&#39;, 3 => &#39;three&#39; ); 
unset( $a[2] ); 
/* 将产生一个数组,定义为 
$a = array( 1=>&#39;one&#39;, 3=>&#39;three&#39;); 
而不是 
$a = array( 1 => &#39;one&#39;, 2 => &#39;three&#39;); 
*/ 
$b = array_values($a); 
// Now $b is array(0 => &#39;one&#39;, 1 =>&#39;three&#39;) 
?>

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Zuweisung nach Wert und Zuweisung nach Referenz in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn