Heim  >  Artikel  >  Backend-Entwicklung  >  Die Verwendung und Vorsichtsmaßnahmen des PHP-Referenzoperators &

Die Verwendung und Vorsichtsmaßnahmen des PHP-Referenzoperators &

高洛峰
高洛峰Original
2016-10-17 11:15:403175Durchsuche

PHPs Referenzoperator &. Jeder, der mit C vertraut ist, weiß, dass es in C etwas gibt, das Zeiger genannt wird. Ein Zeiger zeigt auf eine Speicheradresse. Auch dieses & hat die gleiche Funktion.

Sehen Sie sich den folgenden Code an:

$source="110";
$a=$source;
$b=&$source;
$source="120";
echo $a."\r\n",$b;

Nachdem Sie diesen Code ausgeführt haben, werden Sie feststellen, dass sich der Wert von $a nicht entsprechend dem Wert von $source im vierten ändert Die ursprüngliche Zuweisung war „110“. Als $a zugewiesen wurde, war der Wert von $source 110. Sie kopierte einfach den Wert von $source.

Natürlich werden Sie auch feststellen, dass sich der Wert der Variablen $b und $b fast gleichzeitig geändert hat. Warum gibt es so einen großen Unterschied? Andere. Der Unterschied zwischen der Rettung von Menschen ist groß genug!

Dies ist ein Problem mit dem PHP-Referenzoperator & Da die Variable $b beim Zuweisen eines Werts auf & angewendet wird, kopiert $b nicht „110“ in sich selbst, sondern verweist direkt auf die Heimat von $source Jetzt wird $source sein $b sein. Unabhängig davon, wie sich $source ändert, führt dies zu Änderungen in $b – ähnlich wie bei der Beziehung zwischen einem Host und zwei Monitoren. Da dies die Beziehung ist, führen Änderungen in $b natürlich zu Änderungen in $source

Schauen Sie:

$b=122;
echo $source;

Ausgabeergebnis: 122, wissen Sie, diese beiden Variablen sind von nun an eine „Person“, schikanieren Sie sie nicht!

Tatsächlich empfehle ich aus Gründen der Lesbarkeit des Programms und der daraus resultierenden Fehlbedienung bei der Programmierung nicht, den &-Referenzoperator zu verwenden. Denken Sie darüber nach. Vor Zeile 10.000 haben Sie $b=&$source; verwendet und können sich nach Zeile 10.000 nicht mehr daran erinnern. Wenn Sie versehentlich den falschen Wert zuweisen, reicht es aus, dass Sie beim Debuggen trinken! Haha...

Tatsächlich wird dieser Operator eher bei Datenbankverbindungen verwendet, da wir beim Erstellen von Datenbankverbindungsobjekten oft nur eines benötigen und zu viele nutzlos sind.

Angenommen, wir haben eine Klasse:

class MysqlConnect{} //用来创建数据库连接,那么我们每次调用的时候可以这样写
  
$conn=& new MysqlConnect();

Diese Schreibweise kann sicherstellen, dass die Datenbankverbindung nicht wiederholt erstellt wird und Systemressourcen verbraucht. Wenn Sie jedoch wirklich mehrere unterschiedliche Verbindungen benötigen, dürfen Sie dies nicht so schreiben.

Natürlich ist der PHP-Referenzoperator beim Erstellen von Objekten tatsächlich nützlich. Wenn Sie Tausende von Objekten in einem PHP-Skript erstellen, ist der Systemaufwand tatsächlich sehr hoch. Wenn es nicht erforderlich ist, mehrere zu erstellen, versuchen Sie es mit &!


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