Optionen und weiterführende Links



In der Datenbank befinden sich derzeit 477 Specials. Alle Specials anzeigen...

Grundlagen

Grundlagen

Auch PHP wird mit Hilfe von bestimmten Anfangs- und Endzeichen in eine HTML-Datei eingebunden

<?php
  // hier steht der PHP-Code
?>

Es gibt noch andere Anfangs- und Endzeichen, aber die beherrscht nicht jeder Server. Daher solltet Ihr immer '<?php' und '?>' verwenden. Ausgaben aus Eurem PHP-Code erscheinen dort auf der Seite, wo der PHP-Code steht. Ausgaben erzeugen könnt Ihr mit print oder echo (die beiden Befehle sind Synonyme, sind also austauschbar)

<p>Vor dem PHP-Teil
<?php
  echo "<br>Diese Ausgabe kommt von PHP!<br>";
?>
Nach dem PHP-Teil</p>

Dieser Code erzeugt die Ausgabe

Vor dem PHP-Teil
Diese Ausgabe kommt von PHP!
Nach dem PHP-Teil

Der mit 'echo' ausgegebene String enthält zwei <br>-Tags. Ihr könnt also in Eurer Ausgabe HTML-Code benutzen, der in Eurer Seite dann auch so auftaucht.

Variablen müssen in PHP nicht deklariert werden, auch die Typisierung ist relativ schwach. Jeder Variablenname beginnt mit $

<?php
  $text = "Der erste ";
  $anderer_text = " Teil";
  echo $text . $anderer_text;
?>

An diesem Beispiel seht Ihr auch gleich eine andere Besonderheit von PHP: Der Stringverknüpfungsoperator ist nicht, wie in JavaScript, das Plus (+), sondern der Punkt (.). Wie wir später noch sehen werden, ist auch der Objektoperator nicht der gewohnte Punkt, sondern ein Pfeil (->, Minus und Grösser als).

Praktisch ist auch die Interpolation. Das bedeutet, daß in einem String die Namen von Variablen automatisch durch den Inhalt der Variablen ersetzt werden. Das funktioniert jedoch nur bei Strings, die in doppelten Anführungszeichen (") eingefasst werden

echo "Dieser Beitrag wurde geschrieben von $name am $datum";
Wenn Ihr Zeichen ausgeben wollt, die eine bestimmte Funktion haben, müßt Ihr diese Zeichen maskieren. Das geht mit einem vorgestellten Backslash (\) und ist insbesondere bei Anführungszeichen wichtig

echo "<p class=\"hervorgehoben\">Besonders wichtig</p>";

Neben den gewohnten numerischen Arrays gibt es in PHP zusätzlich noch sogenannte assoziative Arrays. Hier greift Ihr nicht über die Indexnummer, sondern über Schlüssel zu. Diese Schlüssel sind einfache Strings

echo "Username: " . $user['name'];
echo "Passwort: " . $user['passwort']

Ansonsten verhalten sich assoziative Arrays genau so wie numerische Arrays. Allerdings funktioniert die Interpolation mit assoziativen Arrays nicht ganz korrekt, wegen der ' um die Schlüssel

echo "Username: $user['name']"; // funktioniert nicht!

Normalerweise sind alle Variablen in PHP in der gesamten Datei gütig. Ausnahmen gibt es in selbstdefinierten Funktionen

$a = 1;
function meine_funktion()
  {
  echo $a; // dieser Befehl erzeugt keine Ausgabe!
  }

Das liegt daran, daß innerhalb einer selbstdefinierten Funktion ein eigener Variablenkontext aufgemacht wird. Das $a, auf das sich der echo-Befehl bezieht, ist also nicht das globale $a mit dem Wert 1, sondern ein lokales, leeres $a. Um an das globale $a ranzukommen, gibt es zwei Möglichkeiten: Ihr könnt es in der Funktion einführen

$a = 1;
function meine_funktion()
  {
  global $a; // macht das globale $a in der Funktion bekannt
  echo $a; // jetzt wird '1' ausgeben
  }

Außerdem stehen Euch alle globalen Variablen im assoziativen Array $GLOBALS zur Verfügung

$a = 1;
function meine_funktion()
  {
  echo $GLOBALS['a']; // auch hier wird '1' ausgeben
  }

Solche sogenannten superglobalen Arrays werden uns noch öfter begegnen.

Lustigerweise kann man in PHP auch den Namen einer Variablen variabel setzen. Das nennt man dann folgerichtig variable Variablen

$meine_variable = "inhalt";
$variablenname = "meine_variable";
echo $$variablenname; // gibt 'inhalt' aus

Das ist beispielsweise dann hilfreich, wenn Ihr in einer Schleife $variable01, $variable02, ... abfragen wollt. Im Zusammenhang mit PHP-Variablen hat das Schlüsselwort static eine andere Bedeutung, als Ihr es im Zusammenhang mit der OOP kennt. Wenn Ihr eine selbstdefinierte Funktion mehrmals hintereinander aufruft, werden die notwendigen lokalen Variablen jedesmal neu angelegt. In folgendem Beispiel wird daher immer '0' ausgegeben, obwohl die Variable erhöht wird

function test()
  {
  $a = 0;
  echo $a;
  $a++;
  }
...
test();
test();
test();

Damit der Wert nach den Funktionsaufrufen erhalten bleibt, müßt Ihr $a statisch machen

function test()
  {
  static $a = 0;
  echo $a;
  $a++;
  }
...
test();
test();
test();

Jetzt erhaltet Ihr die gewünschte Ausgabe '0', '1' und '2'.

Oft benutzt wird der include-Befehl. Damit bindet Ihr PHP-Code aus einer anderen Datei so ein, als wenn er an Stelle des includes stünde. Dadurch könnt Ihr Euren Code besser strukturieren und auch «wiederverwenden». Wollt Ihr beispielsweise auf jeder Seite in Eurer Site ein Menu haben, dann könnt Ihr das Menu in eine eigene Datei 'menu.inc.php' auslagern und beliebig oft mit include einbinden

<h1>Herzlich willkommen auf meiner Seite</h1>
<!-- Das Menu -->
<?php
  include("menu.inc.php");
?>
...
<h3>Hier findet Ihr die aktuellen Neuerscheinungen</h3>
<!-- Das Menu -->

<?php
  include("menu.inc.php");
?>
...
<h3>Hier findet Ihr die Backlists</h3>
<!-- Das Menu -->
<?php
  include("menu.inc.php");
?>

Beim Auswerten wird das include-Statement an den drei Stellen durch den Code, der in menu.inc.php steht, ersetzt. Es hat sich eingebürgert, Dateien, die includet werden sollen, ein 'inc' im Dateinamen mitzugeben.



Special vom: 16.01.2003
Autor dieses Specials: Henning Kockerbeck
Die weiteren Unterseiten dieses Specials:
Die reine Lehre - HTML
Stilvoll - CSS
Kleiner Grundkurs Programmieren
Jetzt wird's dynamisch - JavaScript
Die andere Seite der Dynamik - PHP
Neue Gefilde - XML
Weiterführende Links
Zurück zur Hauptseite des Specials


?>