http://php.net/manual/en/function.preg-match.php
Najpierw popatrz człowieku jaki typ zwraca funkcja: preg_match(). Zwraca ona typ int, czyli jest to wartość liczbowa. Czyli funkcja ta zwraca ci jakąś liczbę, najczęściej chyba zero i jeden choć nie jestem pewien, co do tego, bo wartość nie jest ustawiona na typ bool.
Posłużę się przykładem:
<?php
if(preg_match('@^[a-z]+$@','jajko')==true){
echo 'Wpisałeś dozwolone znaki';
}else{
echo 'Wpisałeś niedozwolone znaki';
}
?>
Powiem szczerze, że nie wiem dlaczego funkcja: preg_match zwraca typ int, a nie bool, być może później o tym poczytam.
Return Values ¶
preg_match() returns 1 if the pattern matches given subject, 0 if it does not, or FALSE if an error occurred.
Warning
This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE. Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.
Trochę poczytałem i po przetłumaczeniu tego na polski:
Preg_match () zwraca 1, jeśli wzorzec pasuje do danego tematu, 0, jeśli nie, lub FALSE, jeśli wystąpił błąd.
Tut: http://www.gajdaw.pl/php/walidacja-formularzy/p6.html