![]() |
![]() |
![]()
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? (IMG:style_emoticons/default/wink.gif) |
|
|
![]() |
![]()
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... (IMG:style_emoticons/default/wink.gif) Chodziło mi bardziej, czy "!" w if można stosować z wartościami typu innego niż bool? Czy istnieją jakieś wytyczne w tego rodzaju sytuacjach?
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)? (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 73 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 (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 23:24 |