![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 258 Pomógł: 17 Dołączył: 22.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ech już myślałem, że dużo wiem o PHP i znów wyłożyłem się na podstawach.
Jaka jest kolejność wykonywania kodu przez php przy operacji przypisania wartości do zmiennej? czy najpierw jest obliczana prawa strona a później lewa? Dotychczas myślałem ze jest na odwrót (np przy ifach z andem jeśli pierwszy człon nie spełniał warunku to 2 nie był sprawdzany) Może trochę kodu dla przykładu:
Przyznam się, gdyby ktoś mnie zapytał czy powyższy kod wygeneruje 2 razy to samo - potwierdziłbym wynik jest inny:
Wychodzi na to ze linia jest wykonywana od tyłu (najpierw część na prawo od = a potem lewa). Ok czy to jest jakiś magiczny feature, czy ja po prostu nie umiem znaleźć w dokumentacji zadnych szczegółów na ten temat? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Operator przypisania ma znacznie niższy priorytet niż preinkrementacji priorytety operatorów . Stąd można wywnioskować, że najpierw interpreter musi obliczyć wartość wyrażenia ++$i, dalej następuje przypisanie ( po wykonaniu [ ) itd.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
a pisze się ++$i czy $i++? A poza tym dla mnie to oczywiste, że najpierw się obliczy ++$i a potem przypisanie.
Ten post edytował JoShiMa 19.02.2011, 23:37:13 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
~JoShiMa wiesz jaka jest różnica pomiędzy pre- i post-inkrementacją? Wiesz, że w ogóle jest?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Miałam własciwie na myśli czy autor z premedytacją próbował wykorzystać ++$i ?
Tak na marginesie. Pisałam w C/C++ jeszcze pod DOSem (IMG:style_emoticons/default/smile.gif) to chyba wyczerpująca odpowiedź na Twoje pytanie. (IMG:style_emoticons/default/oneeyedsmiley02.png) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 258 Pomógł: 17 Dołączył: 22.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
JoShiMa
Tak z premedytacją potrzebowałem tam użyć ++$i darko Dziękuję - teraz widzę, że aż wstyd takie pytanie było zadawać (IMG:style_emoticons/default/wink.gif) BTW w międzyczasie wertowałem dokumentację i znalazłem jeszcze kilka innych fajnych przykładów http://www.php.net/manual/en/language.oper...s.increment.php - w komentarzach |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
JoShiMa Tak z premedytacją potrzebowałem tam użyć ++$i To nie wiem czemu się dziwisz, że dostałeś taki wynik jaki dostałeś (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 29.09.2025 - 03:43 |