Wie vergleiche ich in einer Bedingung ob es sich um eine Zahl oder Buchstabe handelt?

son gohan

Erfahrenes Mitglied
Hi, ich bins mal wieder Leute,

wie vergleicht man eigentlich per if Bedingung ob z.B. der erste Wert eines String eine Zahl oder ein Buchstabe ist?

Ich hatte das mal so probiert aber klapt nicht:
PHP:
if ($string {0} == int) {echo 'is Zahl';}
 
Soetwas ist am einfachsten mit einem regulären Ausdruck geprüft:
PHP:
var_dump( (bool) preg_match('/^[0-9]$/', $string{0}) );
 
Re: Wie vergleiche ich in einer Bedingung ob es sich um eine Zahl oder Buchstabe hand

Am einfachsten mit einem regulären Ausdrück:
PHP:
<?php

if (preg_match('/^[[:alpha:]]/', $string)) {
    echo '$string beginnt mit einem Buchstaben.';
} else if (preg_match('/^[0-9]/', $string)) {
    echo '$string beginnt mit einer Zahl.';
}

?>
 
Hallo danke sehr, das ist eigentlich die richtige Funktion, aber mein $string wo am Anfang eine Zahl drine steht und dann erst etwas Text folgt, wird als String gewertet, auch wenn ich es mit drei === prüfe.
 
Re: Wie vergleiche ich in einer Bedingung ob es sich um eine Zahl oder Buchstabe hand

[…] aber mein $string wo am Anfang eine Zahl drine steht und dann erst etwas Text folgt, wird als String gewertet […]
Ich denke mal, du beziehst dich auf die gettype()-Funktion. Denn auch ein Teil einer Zeichenkette bleibt eine Zeichenkette. Daher wird die $foobar{n}-Syntax zum Zugriff auf ein Zeichen einer Zeichenkette auch ebendort behandelt.
 
Ja, hi, also die Antwort vorher hatte sich auf die gettype Variante bezogen, mit preg match klappt aber natürlich, danke Leute macht weiter so.
 
Re: Wie vergleiche ich in einer Bedingung ob es sich um eine Zahl oder Buchstabe hand

das sollte auch gehen:

PHP:
if(is_numeric($string{0})) echo "is Zahl";
 
Zurück