SELFPHP

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


Datentypen bestimmen


Einsatz von var_dump()

Um beispielsweise den Typ und den Wert eines bestimmten Ausdrucks zu überprüfen, können Sie var_dump() einsetzen.

Beispiel

<pre>
<?php
$personen = array(array('Matthias','Kannengiesser',29),
      array('Caroline','Kannengiesser',25),
      array('Gülten','Kannengiesser', 59,
      array('Eltern','Mutter')));
var_dump($personen);
?>
</pre>


Ausgabe
array(3) {
  [0]=>
  array(3) {
    [0]=>
    string(8) "Matthias"
    [1]=>
    string(13) "Kannengiesser"
    [2]=>
    int(29)
  }
  [1]=>
  array(3) {
    [0]=>
    string(8) "Caroline"
    [1]=>
    string(13) "Kannengiesser"
    [2]=>
    int(25)
  }
  [2]=>
  array(4) {
    [0]=>
    string(6) "Gülten"
    [1]=>
    string(13) "Kannengiesser"
    [2]=>
    int(59)
    [3]=>
    array(2) {
      [0]=>
      string(6) "Eltern"
      [1]=>
    string(6) "Mutter"
    }
  }
}

Diese Funktion hat die Aufgabe, Informationen über Typ und Wert des Parameters zurückzugeben. Arrays und Objekte werden rekursiv, von innen nach außen, durchlaufen und mit entsprechender Einrückung dargestellt. Sollten Sie zur Fehlersuche lediglich eine lesbare Darstellung eines Typs benötigen, steht Ihnen hierfür gettype() zur Verfügung.


Einsatz von gettype()

Beispiel

<?php
$vorname = "Caroline";
$alter = 25;

// Ausgabe – string
echo gettype($vorname);
// Ausgabe – integer
echo gettype($alter);
?>

Die Funktion gibt die bereits bekannten Typbezeichner als Zeichenkette zurück. Konnte der Typ nicht erkannt werden, so wird die Zeichenkette unknown type erzeugt.

Achtung: Um den Typ zu prüfen, sollten Sie nicht gettype() verwenden. Stattdessen sollten Sie die is_type-Funktionen verwenden. Diese finden Sie weiter unten in der Tabelle.
{PSP}Bei logischen Ausdrücken ist die Verwendung von gettype() zu umständlich. Sie können daher eine ganze Reihe von is_type-Funktionen einsetzen, die True (1) oder False (0) zurückgeben.

FunktionBeschreibung
is_long(string var)
is_integer(string var)
is_int(string var)
Ermittelt, ob es sich um einen Ausdruck vom Typ integer handelt. Gibt 1 zurück, wenn die Variable vom Typ integer ist.
is_double(string var)
is_real(string var)
is_float(string var)
Ermittelt, ob es sich um einen Ausdruck vom Typ double bzw. float handelt. Gibt 1 zurück, wenn die Variable vom Typ double oder float ist.
is_string(string var)Ermittelt, ob es sich um einen Ausdruck vom Typ string handelt. Gibt 1 zurück, wenn die Variable vom Typ string ist.
is_numeric(string var)Ermittelt, ob es sich um einen numerischen Typ (integer, double) handelt. Gibt 1 zurück, wenn die Variable vom Typ integer oder double ist.
is_bool(string var)Ermittelt, ob es sich um einen Ausdruck vom Typ boolean handelt. Gibt 1 zurück, wenn die Variable vom Typ boolean ist.
is_array(string var)Ermittelt, ob es sich um einen Ausdruck vom Typ array handelt. Gibt 1 zurück, wenn die Variable vom Typ array ist.
is_object(string var)Ermittelt, ob es sich um einen Ausdruck vom Typ object bzw. eine Objektvariable handelt. Gibt 1 zurück, wenn die Variable vom Typ object ist.
is_nullErmittelt, ob es sich um einen Ausdruck vom Typ null handelt. Gibt 1 zurück, wenn die Variable vom Typ null ist.
is_resourceErmittelt, ob es sich um einen Ausdruck vom Typ resource handelt. Gibt 1 zurück, wenn die Variable vom Typ resource ist.
is_scalarErmittelt, ob es sich um einen Ausdruck vom Typ integer, float, string oder boolean handelt. Gibt 1 zurück, wenn die Variable vom Typ integer, float, string oder boolean ist.


Beispiel

<?php
$preis = "9.99";
// Ausgabe – Es ist ein String
if (is_string($preis)) {
echo "Es ist ein String";
} else {
echo "Kein String";
}
?>

Beispiel

<?php
$signal = FALSE;
// Ausgabe – Ist bool
if (is_bool($signal)) {
echo "Ist bool";
} else {
echo "Kein bool";
}
?>

Allerdings verhalten sich die Funktionen nicht alle einheitlich. So akzeptiert die Funktion is_numeric() auch numerische Werte, die in Anführungszeichen, also als Strings, übergeben werden. Der Wert darf lediglich keine Buchstaben enthalten.

Beispiel

<?php
$wert = "9.99";
// Ausgabe – Ist eine Zahl
if (is_numeric($wert)) {
echo "Ist eine Zahl";
} else {
echo "Ist keine Zahl";
}
?>

Wenn Sie die Umwandlung in einen bestimmten Typ erzwingen wollen, erreichen Sie dies entweder durch cast–Ausdrücke oder durch Gebrauch der Funktion settype().

Beachten Sie, dass sich eine Variable in bestimmten Situationen unterschiedlich verhalten kann, abhängig vom Typ, dem die Variable zum Zeitpunkt ihrer Verarbeitung entspricht.