![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 114 Pomógł: 0 Dołączył: 3.08.2017 Ostrzeżenie: (0%) ![]() ![]() |
Mam taką wątpliwość... Który zapis w if jest prawidłowy?
Kod if (!preg_match(...)) { } Kod if (preg_match(...) !== 1) { } Bo jedno i drugie zwraca wartość typu bool, więc chyba nie powinno być różnicy? ![]() -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
W manualu jest wszystko napisane: https://www.php.net/manual/en/function.preg-match.php
Cytat preg_match() returns 1 if the pattern matches given subject, 0 if it does not, or false on failure. Także jeśli nie robi Ci różnicy sprawdzanie czy to błąd czy brak dopasowań to zwykły if (!preg_match()) wystarczy. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 114 Pomógł: 0 Dołączył: 3.08.2017 Ostrzeżenie: (0%) ![]() ![]() |
To akurat wiedziałem...
![]() Bo jeśli w if jest string, to przyrównuję do stringa: if ($string !== ''). Jeśli jest int, to przyrównuję do liczby: if ($int >= 1). A tu zwraca mi wartość int (1, 0) lub bool (false). Czy właściwy jest zapis z "!" bądź powinno być if (preg_match() !== 1)? ![]() -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 403 Pomógł: 72 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Oba są poprawne. Ja jednak korzystam z tego drugiego.
Możesz korzystać z "!" przy wartościach innych niż bool, ale nie powinno się tego robić, bo, wg mnie, pokazuje to tylko "ignorancję" programisty ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 13:37 |