Prüfen, ob eine Variable ein String ist (Thema: PHP Beispiele)

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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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
1
2
3
4
5
6
7
8
9
10
11
12
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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
1
2
3
bool(true)
bool(false)
Die Parameter $start und $with muessen beide Strings sein.
Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung. OK