Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Parse error: syntax error, unexpected T_IF
danon198901
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 26.09.2012

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


Witam,
dostaję błąd w tytule tematu. Gdy zrobię sobie coś takiego:

  1. $uzy = isset($_POST['uzy'])?$_POST['uzy']:'';


to wszystko gra i buczy. Ale, gdy rozwinę to w 'rozpisanego' if'a z dodatkowymi sprawdzeniami to dostaję już błąd:

  1. $uzy =
  2. if(isset($_POST['uzy']))
  3. {
  4. if(!is_numeric($_POST['uzy']))
  5. {
  6. echo 'Współrzędne muszą być liczbą!';
  7. }
  8.  
  9. else if($_POST['uzy']<=0)
  10. {
  11. echo 'Współrzędne muszą być liczbą dodatnią!';
  12. }
  13.  
  14. else $_POST['uzy'];
  15. }
  16. else '';


Co dokładnie sknociłem? (IMG:style_emoticons/default/nerdsmiley.png)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


Cytat
Dlatego zastanawiałem się dlaczego przypisując wartość będącą wynikiem instrukcji warunkowej przy pomocy zwykłego if'a (a nie trójoperandowego) doprowadza do błędu mimo, że logicznie to jest to samo.
Nie to nie jest to samo. Gdybyś sięgnął do manula, dowiedziałbyś się, że to są 2 całkowicie inne konstrukcje i tylko w nielicznych przypadkach możesz to stosować zamiennie. Twoje zdumienie tym fenomenem wynika z błędnego założenia, że jest to jedna i ta sama konstrukcja w pełnej i skróconej formie co jest nieprawdą. Każdy operator trójargumentowy może zostać zapisany przy pomocy konstrukcji warunkowej if/else, ale nie każda konstrukcja if/else może zostać zastąpiona przez ten operator. Dlatego Twój przykład nie działa.
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: 29.12.2025 - 02:19