1. is_string()
Die Funktion is_string($var) gibt zurück, ob die übergebene Variable ein String ist:
PHP-Code
<?php
var_dump( is_string('fubar') ); // true
var_dump( is_string('') ); // true
var_dump( is_string('1') ); // true
var_dump( is_string('false') ); // true
var_dump( is_string(1) ); // false
var_dump( is_string(0) ); // false
var_dump( is_string(1.0) ); // false
var_dump( is_string(false) ); // false
var_dump( is_string(new stdClass()) ); // false
class Example {
public function __toString() {
return 'Example';
}
}
$obj = new Example();
var_dump( is_string($obj) ); // false
var_dump( is_string((string)$obj) ); // true
var_dump( is_string($obj->__toString()) ); // true
?>
HTML-Code: Ausgabe
bool(true) bool(true) bool(true) bool(true) bool(false) bool(false) bool(false) bool(false) bool(false) bool(false) bool(true) bool(true)
Während in Java ein String auch NULL sein kann, ist dies in PHP nicht möglich.
Gibt is_string() also true zurück, dann kann man sich darauf verlassen, dass die Variable nicht NULL ist.
2. Funktionsparameter prüfen
Sinnvoll ist die Verwendung von is_string() zum Überprüfen von Funktionsparametern:
PHP-Code
<?php
function startsWith($str, $with) {
if (!is_string($str) || !is_string($with)) {
// Fehlerbehandlung, z.B. Exception
throw new Exception('Die Parameter $start und $with muessen beide Strings sein.');
}
return (strpos($str, $with)===0);
}
try {
var_dump(startsWith('Hochhaus', 'Hoch')); // true
var_dump(startsWith('Garten', 'See')); // false
var_dump(startsWith('42', 4)); // Exception
} catch (Exception $e) {
echo($e->getMessage());
}
?>
HTML-Code: Ausgabe
bool(true) bool(false) Die Parameter $start und $with muessen beide Strings sein.