Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] if('0')
kufalo
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 2
Dołączył: 24.08.2005

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


Witam,

Kod
print('0'?true:false);


Czy w PHP cos takiego od zawsze zwracalo false czy moze ostatnio zaszly jakies zmiany? ... A moze to ja mam nieprawidlowe skojarzenia z jezyka JS, gdzie tylko pusty string rzutuje sie na false, a reszta na true.

Ten post edytował kufalo 27.11.2011, 00:27:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Uriziel01
post
Post #2





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

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


Chyba nie rozumiem co w tym dziwnego że '0' == false. Rozumiem że w JS '0' rzutowane jest na kod ASCII znaku, dlatego też jest inne od 'false' ? Wydaje mi się to całkowicie normalne i naturalne podejście. Ale faktycznie widzę że może w pewnych sytuacjach przysporzyć sporo komplikacji.
Ale jeżeli naprawdę nie możesz tego znieść, zawsze możesz użyć:
  1. <?PHP
  2. $val = '0';
  3. if (false == $val AND ord($val) != 48)
  4. {
  5. echo 'prawda';
  6. }
  7. else
  8. {
  9. echo 'fałsz';
  10. }
  11. ?>


Albo wręcz opisać to w funkcje w stylu 'real_value' i voila!

  1. <?PHP
  2. $val = '0';
  3. if (false == real_value($val))
  4. {
  5. echo 'prawda';
  6. }
  7. else
  8. {
  9. echo 'fałsz';
  10. }
  11.  
  12. function real_value($val)
  13. {
  14. if (false == $val AND ord($val) != 48)
  15. {
  16. return false;
  17. }
  18. else
  19. {
  20. return true;
  21. }
  22. }
  23. ?>


Ten post edytował Uriziel01 28.11.2011, 11:11:24
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: 16.10.2025 - 13:11