Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]is_integer i is_numeric
nowy_pehapowiec
post
Post #1





Grupa: Zarejestrowani
Postów: 220
Pomógł: 0
Dołączył: 24.08.2009

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


Przekazuje w adresie wartość zmiennej id=123. Po czym sprawdzam czy to jest integer
if( isset( $_GET['id'] ) && is_integer( $_GET['id'] ) )
i okazuje się, że nie. Ale jak dam is_numeric to przechodzi. Czemu?

pozdro
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




no przeciez masz to napisane w manualu!
http://pl2.php.net/manual/pl/function.is-int.php
Cytat
Find whether the type of a variable is integer


http://pl2.php.net/manual/pl/function.is-numeric.php
Cytat
Finds whether a variable is a number or a numeric string


ps: wszystko co przychodzi z GETa czy POSTA jest tekstem
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
thek
post
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Zmienne GET zawsze są przesyłane jako wartość typu string. A więc jeśli wykonasz na tym sprawdzenie to system widzi nie 876 ale "876". Is_numeric zobaczy to jako wartość numeryczną zapisaną jako string, is_integer uzna za string i wywali false (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
nowy_pehapowiec
post
Post #4





Grupa: Zarejestrowani
Postów: 220
Pomógł: 0
Dołączył: 24.08.2009

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


wszystko co przychodzi z GETa czy POSTA jest tekstem

no to strzeliłem gafę (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
cojack
post
Post #5





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

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


Wywołaj rzutowanie niejawne bo jawnego w php nie ma z stringu na int za pomocą (int), jeżeli jest numerci to nie stracisz na rzutowaniu, jeżeli nie jest dostaniesz 0, false. Czyli rzutowanie stratne.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
jeżeli nie jest dostaniesz 0, false.
No nie do konca...
  1. $str = '123nienumeric';
  2. $int = (int)$str;
  3. echo "$str da nam $int";
  4. echo '<br />';
  5. $str = 'nienumeric123';
  6. $int = (int)$str;
  7. echo "$str da nam $int";


Cytat
123nienumeric da nam 123
nienumeric123 da nam 0
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.12.2025 - 15:52