Wie verwende ich das Referenz-kaufmännische Und? Ausführliche Erläuterung von PHP- und Symbolverwendungsbeispielen

伊谢尔伦
Freigeben: 2023-03-10 22:16:02
Original
2318 Leute haben es durchsucht

Was ist eine PHP-Referenz?

zitiert in PHP bedeutet: Verschiedene Namen greifen auf denselben VariablenInhalt. PHP-Referenz (d. h. Hinzufügen eines kaufmännischen Und-Zeichens vor Variablen oder Funktionen, Objekten usw.). Sieht es nicht so aus, als würden Sie Bestellungen entgegennehmen? Lassen Sie es uns unten erklären: 1 🎜>PHP

-Referenzen ermöglichen die Verwendung von zwei Variablen, um auf denselben Inhalt zu verweisen

Beispiel 1:

Beispiel 2:

Aus den obigen beiden Beispielen ist ersichtlich, dass die Zuweisung der Speicheradresse von

$b

zu
<?php
$a="2010";
$b =&$a;
echo $a;//这里输出:2010
echo $b;//这里输出:2010
$b="2012";
echo $a;//这里$a的值变为2012 所以输出
echo $b;//这里输出2012
?>
Nach dem Login kopieren
$b

keine einfache Zuweisung ist. Daher wirkt sich jede Operation an

$b
<?php
$a = "date";
$b = &$a;
echo $a; // date
echo $b; // date
$b = "date1";
echo $a; // date1
echo $b; // date1
unset($a);
echo $b; // date1
?>
Nach dem Login kopieren

auch auf $a aus. Anders ausgedrückt: Geben Sie $a

Einen Alias ​​

$b hinzugefügt. Wenn Sie $a

löschen, wird nur der Name der Variablen gelöscht, der Inhalt der Variablen wird jedoch nicht gelöscht Verwenden Sie den Alias, um den Inhalt der Variablen zu löschen. (Wie in der Abbildung gezeigt)

2. Funktionsaufruf nach Adresse

Beispiel 3:

So geht's hierTest(1

);

es geht schief

<?php
function test(&$a)
{
$a=$a+100;
}
$b=1;
echo $b;//输出1
//这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值 就可以改变$b的值了
test($b);  
echo $b;//输出101
?>
Nach dem Login kopieren
                                                                                                                                                                                            Adresse.

3. Funktionsreferenzrückgabe

php引用符号详解 - 蓝色花絮 - 永远的2009Funktionsreferenzrückgabe wird hauptsächlich in Objekten verwendet, es ist hier leicht zu verstehen

Verwenden Sie die Variable Static als Beispiel

Beispiel 4:

Beachten Sie, dass diese Funktion eine Ausgabe hat und einen Wert zurückgibt.

$a = test(); Weisen Sie einfach den Rückgabewert $b

der Funktion

test

zu
<?php
function &test()
{
    static $b=0;//申明一个静态变量
    $b=$b+1;
    echo $b;
    return $b;
}
//这条语句会输出 $b的值 为1
$a=test();
$a=5;
$a=test();//这条语句会输出 $b的值 为2
 
$a=&test();//这条语句会输出 $b的值 为3
$a=5;
$a=test();//这条语句会输出 $b的值 为6
?>
Nach dem Login kopieren
$a

zu Ja, es ist nur eine normale Zuweisung, keine Referenzrückgabe von einer Funktion. Egal welche Operation

$a

ausführt, sie hat keine Auswirkungen auf $b. $a = &test(); wird verwendet, um die Speicheradresse von $b mit der Speicheradresse von $a zu vergleichen zeigt auf die gleiche Stelle, was einen ähnlichen Effekt wie $b = &$a erzeugt. Wenn sich der Wert von

$a

ändert, wird er zu 5. wirkt sich auch auf den Wert von $b aus. Wenn also $a = &test(); $a = 5 ausgeführt wird, gibt es $b = 5 und die Funktion gibt $ aus b = 6; >Der Effekt des Ausführens in PHP5 Kopieren von Objekten wird durch Referenzen erreicht.

上列中$b=new a; $c=$b; 其实等效于$b=new a; $c=&$b;

PHP5中默认就是通过引用来调用对象, 但有时你可能想建立一个对象的副本,并希望原来的对象的改变不影响到副本。 为了这样的目的,PHP定义了一个特殊的方法,称为clone

5. 引用的作用

如果程序比较大,引用同一个对象的变量比较多,并且希望用完 该对象后手工清除它,建议用 "&" 方式,然后用$var=null的方式清除。其它时候还是用php5的默认方式吧.

另外, php5中对于大数组的传递,建议用 "&" 方式, 毕竟节省内存空间使用。

6. 取消引用

当你 unset 一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。

例如:

 <?php
$a = 1;
$b =& $a;
unset ($a);
?>
Nach dem Login kopieren

不会 unset $b,只是 $a

可以参看变量的引用那段

7. global 引用

当用 global $var 声明一个变量时实际上建立了一个到全局变量的引用。

它等价于下面这段代码:

<?php
$var =& $GLOBALS["var"];
?>
Nach dem Login kopieren

 这意味着,例如,unset $var 不会 unset 全局变量。 

8. $this

在一个对象的方法中,$this 永远是调用它的对象的引用。 

另外说明

php中对于地址的指向(类似指针)功能不是由用户自己来实现的,是由Zend核心实现的,php中引用 采用的是写时拷贝的原理,就是除非发生写操作,才会拷贝,其他操作,指向同一个地址的变量或者对象是不会被拷贝的。

假如,有以下代码:

$a="ABC"; 
$b=$a;

Zu diesem Zeitpunkt verweisen $a und $b beide auf dieselbe Speicheradresse, nicht $a und $b Anderen Speicher belegen

Wenn Sie den folgenden Code zusätzlich zum obigen Code hinzufügen,

$a="EFG";

fahren Sie hier fort " Schreibvorgang

Da die Daten im Speicher, auf die $a und $b zeigen, neu geschrieben werden müssen, beurteilt der Zend-Kern zu diesem Zeitpunkt automatisch und erstellt automatisch eine Datenkopie von $a für $b. und schreiben Sie es neu. Beantragen Sie ein Stück Speicher zur Speicherung.

Das obige ist der detaillierte Inhalt vonWie verwende ich das Referenz-kaufmännische Und? Ausführliche Erläuterung von PHP- und Symbolverwendungsbeispielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage