Prüfen, ob eine Variable ein String ist

Wie in PHP herausgefunden werden kann, ob eine bestimmte Variable ein String ist

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)





wichtig
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.