![]() |
![]() ![]() |
![]() |
![]() ![]()
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: to wszystko gra i buczy. Ale, gdy rozwinę to w 'rozpisanego' if'a z dodatkowymi sprawdzeniami to dostaję już błąd: Co dokładnie sknociłem? ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 74 Pomógł: 24 Dołączył: 21.10.2012 Skąd: Puławy Ostrzeżenie: (0%) ![]() ![]() |
Linia 1, 16 i 18. Próbujesz instr. warunkową przypisać do zmiennej?
![]() Ten post edytował Sebek87 25.10.2012, 21:22:25 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 26.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
oczywiście, że nie:)
Instrukcja warunkowa służy tu tylko przypisaniu odpowiedniej wartości do zmiennej, a dokładniej, jeśli zmienna przekazywana z formularza jest ustawiona, jest liczba większą od zera to nastąpić ma przypisanie. Oczywiście mogę to zrobić nieco inaczej, a mianowicie if(warunek) $uzy = ...; zamiast $uzy = if(warunek)... Z tym, że nie bardzo wiem co jest źle w kodzie, który pokazałem. W końcu skrócony zapis if działa! |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 74 Pomógł: 24 Dołączył: 21.10.2012 Skąd: Puławy Ostrzeżenie: (0%) ![]() ![]() |
To pierwsze wyrażenie:
to trójoperandowy operator warunkowy, który jest częścią składni PHP, dlatego Ci działa - logiczne. O powyższym wyrażniu możesz przeczytać na http://www.php.net/manual/pl/language.expressions.php Natomiast wyrażnie drugie, które zacząłeś od:
to już wynik próby poszerzenia funkcjonalności PHP przez Ciebie ![]() Ten post edytował Sebek87 25.10.2012, 22:17:24 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 26.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
mhm. Wiesz generalnie zasada działania jest taka sama, z tym, że else if'ów nie można robić. 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.
Nigdy wcześniej w taki sposób nie przypisywałem zmiennych, ale przykład który gdzieś tam w sieci znalazłem spowodował, że chciałem się dowiedzieć o co tutaj chodzi:) Ten post edytował danon198901 25.10.2012, 22:24:25 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 74 Pomógł: 24 Dołączył: 21.10.2012 Skąd: Puławy 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. Dlatego, że w PHP nie ma takiej składni:
Sam widzisz, że wyrzuciło Ci syntax error. Ten post edytował Sebek87 25.10.2012, 22:34:34 |
|
|
![]()
Post
#7
|
|
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. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 26.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
OK dzięki. Temat wyczerpany. Można zamknąć
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 09:01 |