:: Anbieterverzeichnis :: Globale Branchen
:: SELFPHP Forum ::
Fragen rund um die Themen PHP?
In über
130.000 Beiträgen finden Sie sicher die passende
Antwort! 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
|
Was leisten Referenzen?  |
|
SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an.
Weitere Informationen
PHP-Referenzen erlauben es, zwei Variablennamen sich auf den gleichen Variableninhalt beziehen zu lassen.
Das heißt im folgenden Beispiel, dass sich $punkte und $punktestand auf dieselbe Variable beziehen:
<?php
$punkte = 1000;
$punktestand = &$punkte;
// Ausgabe (1000)
echo $punktestand;
?>
Achtung: $punkte und $punktestand sind hier gleichwertig, und $punkte ist nicht nur ein Zeiger auf $punktestand oder umgekehrt, sondern $punkte und $punktestand zeigen auf denselben Inhalt.
Seit PHP 4.0.4 kann & auch in Verbindung mit new verwendet werden.
<?php
class Haus
{
var $etagen;
function Haus($etagen)
{
$this->etagen = $etagen;
}
}
$meinhaus = &new Haus(2);
$hausetagen = &$meinhaus->etagen;
// Ausgabe (2)
echo $hausetagen;
$hausetagen = 10;
// Ausgabe (10)
echo $meinhaus->etagen;
?>
Wenn der &-Operator nicht verwendet wird, erzeugt PHP eine Kopie des Objekts. Wenn nun $this innerhalb der Klasse verwendet wird, bezieht es sich auf die aktuelle Instanz der Klasse. Die Zuordnung ohne & erzeugt eine Kopie der Instanz (d. h. des Objekts) und $this wird sich auf die Kopie beziehen. In der Regel will man aus Performance- und Speichergründen nur eine einzige Instanz einer Klasse erzeugen.
pass-by-reference
Eine weitere Einsatzmöglichkeit von Referenzen ist die Übergabe von Parametern an eine Funktion mit pass-by-reference. Hierbei beziehen sich der lokale Variablenname und der Variablenname der aufrufenden Instanz auf denselben Variableninhalt:
<?php
function ausgabe(&$var) {
return $var++;
}
$zahl=5;
// Ausgabe (5)
echo ausgabe ($zahl);
// Ausgabe (6)
echo $zahl;
?>
return-by-reference
Daneben besteht die Möglichkeit, aus Funktionen heraus Werte mit return-by-reference zurückzugeben. Das Zurückgeben von Ergebnissen per Referenz aus Funktionen heraus kann in manchen Fällen recht nützlich sein. Hierbei ist folgende Syntax zu beachten:
<?php
function &ausgabe($param) {
return $param;
}
$wert =&ausgabe(5);
// Ausgabe (5)
echo $wert;
?>
In diesem Beispiel wird also die Eigenschaft des von ausgabe() gelieferten Werts gesetzt, nicht die der Kopie, wie es der Fall wäre, wenn die Funktion ausgabe() ihr Ergebnis nicht per Referenz liefern würde.
Achtung: Im Gegensatz zur Parameterübergabe per Referenz ist bei der Rückgabe mittels Referenz an beiden Stellen die Angabe des & notwendig.
|
|
|
|
|


:: Anbieterverzeichnis ::
Webhosting/Serverlösungen
Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?
Sie sind nur ein paar Klicks davon entfernt! 
|