Mit preg_match() ergibt sich automatisch der strict-Mode weil string mit string verglichen wird, also type-gleich.
So genau wissen wir das nicht. Ich bin davon ausgegangen, dass die gezeigten Daten nur ein Beispiel sind. Statt irgendwelcher Namen könnten da auch Integers, Decimals, beide als Strings mit der Gültigkeit [0-9.] oder sogar boolenansche Werte in Frage kommen. Ich weiss also nicht, warum der Fragesteller eine Typüberprüfung haben wollte - er hat es aber so notiert.
Das von Dir gezeigte preg_match()
ist zwar auch eine Idee, erscheint mir aber "teuer". Gerade wenn man noch hingeht und das Pattern aus einem Array erzeugt sogar viel zu teuer. Da wäre sogar ein array_flip()
und eine Prüfung mit isset()
wohl deutlich billiger.
<?php
$liste = array_flip( ['Jan', 'Paul', 'Monika'] );
$name = 'Monika';
if ( isset( $liste[ $name ] ) ) {
echo "Ja!\n";
} else {
echo "Nein!\n";
}
Das geht übrigens schon mit $liste = array_flip( ['Jan', 1.4, 'Monika'] );
schief: "PHP Warning: array_flip(): Can only flip STRING and INTEGER values!"