SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=249&group=44
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Klassenkonstanten


Vor PHP 5 waren Konstanten immer global, was den Einsatz etwas problematisch machte, da Namenskonflikte fast schon vorprogrammiert waren. Da sich Konstanten von Objekt zu Objekt nicht ändern, verhalten sie sich wie statische Mitglieder und werden auch genau wie diese verwendet. Der einzige Unterschied besteht darin, dass sich der Inhalt nicht verändern lässt – außer während der Definition. Diese Definition erfolgt innerhalb der Klasse.

Im Gegensatz zu den globalen Konstanten, die mit der define()-Funktion erzeugt werden, erfolgt die Deklaration in Klassen mit dem Schlüsselwort const.

Der Zugriff auf eine solche Konstante erfolgt über Klassenname::Konstante. Soll der Zugriff auf die Konstante aus einer Methode derselben Klasse erfolgen, so kann auch self::Konstante verwendet werden.

Beispiel – const und static

<?php
class MeineKlasse {
  const Konstante = 16;
  static $statisch = 1;

  function erhoehen() {
    return self::$statisch++;
  }
}

$a = new MeineKlasse;
$b = new MeineKlasse;

echo "MeineKlasse::Konstante = " . MeineKlasse::Konstante . "<br>";
echo "\$a->erhoehen() = " . $a->erhoehen() . "<br>";
echo "\$b->erhoehen() = " . $b->erhoehen() . "<br>";

?>

Ausgabe
MeineKlasse::Konstante = 16
$a->erhoehen() = 1
$b->erhoehen() = 2

Beispiel – Physik

<?php

class Physik
{  
  const ATOM_GEWICHT = 1.00895;
}

echo "Wert: " . Physik::ATOM_GEWICHT;

?>

Ausgabe
Wert: 1.00895