Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]preg_match
krystian1991x
post 18.10.2010, 17:46:50
Post #1





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 7.08.2010

Ostrzeżenie: (10%)
X----


dlaczego pomimo tego że np znaków jest mniej niż 25 lub więcej 500 skrypt się dalej wykonuje ? co ja tutaj zrobiłem źle ?
  1. if(preg_match('#^[A-Za-z0-9_-]+$#', $value) && strlen($value) > 25 || strlen($value) < 500 )
  2. {
  3.  
  4. echo"wszystko gitara";
  5.  
  6. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
kokers
post 18.10.2010, 18:14:42
Post #2





Grupa: Zarejestrowani
Postów: 154
Pomógł: 33
Dołączył: 18.10.2010
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Ponieważ użyłeś operacji logicznej lub...

jeśli strlen będzie większy niż 25 LUB mniejszy niż 500 wtedy będzie to prawda. W związku z tym zawsze to będzie prawda. bo nawet jeśli wpiszesz ciąg znaków o długości 20 to pomimo że jest mniejszy niż 25 (co powoduje, że pierwsze porównanie jest nieprawdą), to jest też mniejszy niż 500 (co jest już prawdą). W przypadku użycia lub, przynajmniej jedno z porównań musi być prawdą, żeby instrukcje się wykonały.

Zmień operatora || na && i powinno działać.


--------------------
‎"Sometimes you're gonna get odd error syntax, unexpected T_PAAMAYIM_NEKUDOTAYIM and you're like, what in the world is that thing i have no idea what went wrong in my code. In english that error means you screwed up the references to an object" Kevin Skoglund
Drobna prywata: Ależ nie nie, nie zamierzam zmieniać płci w najbliższym czasie, więc zwracanie się do mnie per Pan jest odrobinkę nietrafione.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:50