Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Sprachelemente und Syntax  Teil von  Referenzen in PHP
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++



:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP? In über 120.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Was leisten Referenzen?




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.



 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


Microsoft Deutschland GmbH
twosteps.net - ...Premium-Webhosting
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2009 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt