Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Funkcja is_int nie rozponaje cyfry jako cyfry
Bojakki
post
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


Mam funkcję:

  1. public function int()
  2. {
  3. if (strlen($this->_data) > 0){
  4. if(is_int($this->_data))
  5. {
  6. $this->reportTrue($this->_data);
  7. return true;
  8. } else {
  9. $this->reportFalse($this->_data);
  10. return false;
  11. }
  12. }else{
  13. $this->reportTrue($this->_data);
  14. return true;
  15. }
  16. }


Słuzy ona do sparwdzania pola w formularzu. Powinna zwracac true gdy pole jest puste lub gdy jest tam wpisana liczba całkowita. Problem jest taki, że wpisując w pole formularza liczbę np. "10" zwraca false. Myślałem, że może coś tam się przywłóczyło razem z cyfrą z formularza (jakas spacja czy cos). Licze liczbę znaków w tym stringu - wychodzi 2, biore by w raporcie wypluowało wpisaną cyfrę pod zmienną $this->_data, wyskakuje 10, mimo tego pokazuję tę 10 jako false, czyli nie int.

Jak wezme jednak przefiltruje tę zmienna $this->_data intvalem to jest OK, gdy wpiszę zamiast

  1. if(is_int($this->_data))


  1. if(is_int(10))


też jest OK,a przecież $this->_data to jest właśnie "10" z formularza.

Ten post edytował Bojakki 14.11.2011, 22:35:13
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Bojakki
post
Post #2





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


jak dałem $zmienna = (int) $this->_data; to przechodzi, ale niestety wszystko. ktos wpisze 5.5 a mi do bazy doda się 55.

Zmieniłem funkcję tak:

  1. public function int()
  2. {
  3. $zmienna = $this->_data;
  4. if (strlen($zmienna) > 0){
  5. if($zmienna == '10')
  6. {
  7. $this->reportTrue($zmienna);
  8. return true;
  9. } else {
  10. $this->reportFalse($zmienna);
  11. return false;
  12. }
  13. }else{
  14. $this->reportTrue($zmienna);
  15. return true;
  16. }
  17. }


Wpisałem w pole formularza "10" i działa. czyli te 10 to 10 nie wiem więc dlaczego nie przechodzi is_int
Go to the top of the page
+Quote Post

Posty w temacie


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: 5.10.2025 - 18:54