Anzeige
Tutorialbeschreibung

PHP - Teil 08 - Datentypen

PHP - Teil 08 - Datentypen

In diesem Tutorial werden Ressourcen, Objekte, Strings und der Datentyp NULL vorgestellt.


Ressourcen

Durch Ressourcen kann man auf Datenquellen zugreifen. Das könnten beispielsweise Dateien sein. Denn mit PHP kann man Dateien öffnen, auslesen und beschreiben. Öffnet ihr also zum Beispiel mittels PHP eine Datei, wird automatisch eine Ressource erstellt. Jedes Mal, wenn dann mit der geöffneten Datei gearbeitet werden soll, muss eben jene Ressource angegeben werden. Nur so weiß der Parser, dass sich der betreffende Befehl auf die gewünschte Datei bezieht. Aber nicht nur im Zusammenhang mit Dateien sind Ressourcen interessant. Auch wenn man mit Datenbanken arbeitet, werden sie verwendet. Wird also über
$db = mysql_connect(...)

eine Datenbankverbindung hergestellt, ist $db vom Typ Ressource.

Ressourcen können auf dem Server sehr viel Speicherplatz belegen. Daher kann man diese gezielt wieder freigeben. Normalerweise müsst ihr das aber nicht manuell erledigen, da PHP die Ressourcen intern mit einer Zugriffsliste verwaltet. Nachdem zum letzten Mal auf die Ressource zugegriffen wurde, wie diese automatisch freigegeben.


Arrays

Da die Arrays ein besonders komplexes Thema und wichtiges Programmierkonzept sind, wird ihnen ein eigenes Tutorial gewidmet. So viel aber schon an dieser Stelle: Arrays sind Felder, in denen mehrere Werte zusammengefasst sind. Jedes zu einem Array gehörende Element ist entweder über seinen Namen oder eine Nummer ansprechbar.

Im folgenden Beispiel werden die beiden Arrays $monat und $tag definiert. Diese enthalten die Monatsnamen und die Namen der Wochentage.
<?php
   $monat = array("Januar", "Februar", "März", "April", "Mai", "Juni", 
       "Juli", "August","September","Oktober","November","Dezember");
   $tag = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", 
           "Freitag", "Samstag");
  ?>


Objekte

Mit Objekten bekommt man es im Zusammenhang mit der objektorientierten Programmierung zu tun. Jedes Objekt besteht aus einer Reihe vorgeschriebener Attribute. Jedes dieser Attribute besitzt einen eindeutigen Bezeichner, über den man es ansprechen und manipulieren kann. Objekte besitzen eine Reihe vordefinierter Methoden, die zur Laufzeit angepasst werden können.

Stellt euch ein Auto als Objekt vor. Für dieses Objekt könnten die folgenden Attribute definiert werden:
  • Die Anzahl der Gänge als Integer.
  • Die aktuelle Geschwindigkeit als Integer.
  • Die maximal erlaubte Höchstgeschwindigkeit als Integer.
  • Der Status, ob das Auto gestartet wurde, als booleschen Wert.
Vor diesem Hintergrund können nun einige Methoden für den Zugriff auf die Attribute definiert werden.
  • starteAuto setzt den Status des Objekts auf true, startet also den Motor. Ist der Motor aus, wird der Status automatisch von false auf true geändert.
  • stoppeAuto setzt den Status des Objekts auf false, stoppt also den Motor. Ist der Motor an, wird der Status automatisch von true auf false geändert.
  • schnellerFahren erhöht die aktuelle Geschwindigkeit auf einen angegebenen Wert, maximal jedoch bis zur Höchstgeschwindigkeit.
  • langsamerFahren verringert die aktuelle Geschwindigkeit auf einen angegebenen Wert.
Diese definierten Attribute können nun auf beliebige Objekte vom Typ Auto angewendet werden, schließlich lassen sich – normalerweise – alle Autos starten, anhalten, beschleunigen und abbremsen. Die zusammengefassten Gemeinsamkeiten werden in der objektorientierten Programmierung als Klassen bezeichnet. Objekte, die aus solchen Klassen abgeleitet werden, sind Instanzen.


 

Strings

Zeichenketten werden immer in einfache oder doppelte Anführungszeichen gesetzt. Dabei werden Zeichenketten, die in einfachen Zeichenketten stehen, fast ohne Verarbeitung weitergegeben. In einer solchen Zeichenkette enthaltene Variablen oder Sonderzeichen werden also nicht ausgewertet.

Ein Beispiel:
<?php
 $ausgabe = 'Hallo, Welt!';
 echo 'Er sagte $ausgabe';
?>

In diesem Beispiel wurde der Variablen $ausgabe der Wert Hallo, Welt zugewiesen. Dennoch wird nicht – wie man vielleicht vermuten könnte – der Satz Er sagte Hallo, Welt! angezeigt.

Bilder



 
Das liegt daran, dass durch die einfachen Anführungszeichen die Variable nicht ausgewertet wird.

Strings, die in doppelten Anführungszeichen stehen, werden vom PHP-Parser interpretiert und verarbeitet. Darin enthaltene Sonderzeichen und Variablen werden also aufgelöst und in den Datentyp String umgewandelt. Seht euch dazu das folgende Beispiel an, das auf den ersten Blick wie die zuvor gezeigte Syntax wirkt. Allerdings wurden hier doppelte Anführungszeichen verwendet.
<?php
 $ausgabe = "Hallo, Welt!";
 echo "Er sagte $ausgabe";
?>

Und eben diese doppelten Anführungszeichen sorgen dafür, dass der Variableninhalt jetzt tatsächlich ausgegeben wird.

Bilder



 
Auf die Thematik mit der Kombination aus doppelten und einfachen Anführungszeichen wurde bereits in einem der vorherigen Tutorials hingewiesen.

Im Zusammenhang mit Strings gibt es einige PHP-Funktionen und -Befehle, die euch immer wieder begegnen werden. Ein sehr häufig benötigter Befehl ist echo. Darüber lassen sich Zeichenketten ausgegeben.
echo $ausgabe

Alternativ zu echo existieren die Befehle print und printf. Mit denen kann man ebenfalls Zeichenketten ausgeben. Im Zweifelsfall solltet ihr echo verwenden. Eine interessante Gegenüberstellung der genannten Befehle findet ihr unter http://phpperformance.de/ausgabefunktionen-echo-vs-print-vs-printf/. Dort gibt es auch einen Performancevergleich.

Bilder



 

NULL

Variablen besitzen den Wert NULL, wenn ihnen sonst kein anderer Wert zugewiesen wurde. Typischerweise ist das der Fall, wenn die Variable noch nicht initialisiert oder über unset() gelöscht wurde. Außerdem ist eine Variable auch immer dann vom Wert NULL, wenn ihr die Konstante NULL zugewiesen wurde. NULL ist der einzig mögliche Wert von NULL.


Datentypen ermitteln

Die Datentypen werden von PHP normalerweise automatisch zugewiesen. Dennoch gibt es Situationen, in denen man den Datentyp einer Variablen explizit ermitteln will. PHP bietet hier verschiedene Möglichkeiten. Zunächst einmal kann man die Funktion gettype() verwenden. Diese Funktion liefert den Datentyp der übergebenen Variblen.
<?php
 $Wert = "Ein String.";
 echo gettype($Wert), // String    
 "<br>";
 $Wert = 200;
 echo gettype($Wert), // Integer 
 "<br>";
 $Wert = 6.45;
 echo gettype($Wert), // Double
 "<br>";
 $Wert = array("Element 1", "Element 2");
 echo gettype($Wert), // Array
 "<br>";
 $Wert = False;
 echo gettype($Wert); // Boolean
?>


 
Hier werden also die Datentypen ermittelt und mittels echo ausgegeben.

Bilder



 
Der Einsatz von gettype() ist allerdings nicht immer ratsam. Auf diesen Aspekt wird selbst in der offiziellen PHP-Dokumentation hingewiesen. So soll man gettype() niemals dazu verwenden, Variablen auf einen bestimmten Typ hin zu überprüfen, da die zurückgelieferte Zeichenkette möglicherweise manipuliert ist. Außerdem weist die Funktion Performancenachteile auf, da sie Zeichenkettenvergleiche nutzt.

Besser eignen sich daher die verschiedenen is_xxx()-Funktionen, die von PHP standardmäßig angeboten werden. Hier einige Beispiele, wie sich diese Funktionen einsetzen lassen:  
<?php
 // Liefert false
 echo (is_string(array())) ? 'true' : 'false' ;
 echo "<br />";
 // Liefert true
 echo (is_string('12.23')) ? 'true' : 'false'; 
 echo "<br />";
 // Liefert true
 echo (is_string('123')) ? 'true' : 'false';
 echo "<br />"; 
 // Liefert false

 echo (is_string(array(1, array()))) ? 'true' : 'false';
 echo "<br />"; 
 // Liefert true
 echo (is_string('Hallo, Welt!')) ? 'true' : 'false';
?>


 
Das Ergebnis sieht folgendermaßen aus:

Bilder



Neben den hier aufgeführten Varianten hält PHP noch weitere parat. Werft für eine vollständige Übersicht einen Blick in die PHP-Referenz unter http://www.php.net/manual/de/ref.var.php.

DVD-Werbung
Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von franzg
  • 14.05.2017 - 17:26

Ein hilfreiches und gut erklärtes Tutorial! Danke!

Portrait von tipsi_95
  • 07.10.2016 - 13:14

Vielen Dank, tolles Video.

Portrait von dmtw2107
  • 16.11.2013 - 09:32

toll gemachtes tutorial

x
×
×