![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 2 Dołączył: 6.07.2010 Ostrzeżenie: (0%)
|
Kurcze, wlasnie staram sie edytnac skrypt pewnego forum i napotkalem na pewien problem.
Otoz jest tam pare IFów bez klamer otwierajacych/zamykajacych instrukcje....jak mam rozumiec taki zapis? Tzn. skad mam wiedziec, gdzie ten IF sie konczy? Przyklad:
drugi przyklad:
Skopiowalem z oryginalnymi tabami, zeby bylo widac dokladnie o co chodzi. No i teraz zagadka, ktore linijki naleza pod tego ifa, a ktore juz nie? Ktos zalowal tych klamerek jak widac, przez co kod jest nieczytelny (IMG:style_emoticons/default/sad.gif) Ten post edytował kaźmirz 16.03.2011, 22:53:53 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%)
|
Wykona się tylko pierwsza instrukcja jeżeli warunek jest spełniony
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%)
|
Taka konstrukcja sprawia, że if działa tylko do najbliższego średnika, czyli wykonuje 1 instrukcję występującą zaraz po sobie.
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 2 Dołączył: 6.07.2010 Ostrzeżenie: (0%)
|
czyli ten drugi preg_match sie nie wykona w instrukcji, tzn. nie nalezy do niej?
Kurcze to po co ktos tak to "formatowal" tabami, ze sa dokladnie pod soba, a reszta kodu nie :/ Ale w sumie, tego to juz nikt nie wie - chyba jedynie autor tego kodu. Dzieki za opdowiedzi, bo sie pogubilem w tym... Ten post edytował kaźmirz 16.03.2011, 23:00:40 |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
Działa tak samo jak
Autor najwyraźniej czerpał nawyk np. z JavaScriptu, gdzie nie używa się klamer ze względu na "objętość" kodu... Co nie jest mile widziane w php. Ten post edytował !*! 16.03.2011, 23:47:03 |
|
|
|
Post
#6
|
|
|
Grupa: Administratorzy Postów: 1 552 Pomógł: 211 Dołączył: 7.07.2009 Skąd: NJ |
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 370 Pomógł: 43 Dołączył: 1.12.2007 Skąd: Kędzierzyn Koźle Ostrzeżenie: (0%)
|
|
|
|
|
Post
#8
|
|
|
Grupa: Administratorzy Postów: 1 552 Pomógł: 211 Dołączył: 7.07.2009 Skąd: NJ |
Odnosiłam się do tego co napisał !*!, pisząc że działa tak samo jak "to" poniżej.
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 2 Dołączył: 6.07.2010 Ostrzeżenie: (0%)
|
!*!, Daiquiri obydwoje źle mówicie... kod:
działa tak samo jak:
nie wprowadzajcie ludzi w błąd. No wlasnie tez mi sie cos nie podobalo, jak patrzylem na ten drugi przyklad, ktory podalem. Wedlug Twojego przykladu, co bedzie wynikiem, jesli $test == true? 1. "jest" i "nie ma" 2. samo "jest" Bo juz sie zakolowalem (IMG:style_emoticons/default/wink.gif) Kurcze juz sam nie wiem, po co ten return $text jest dokladnie pod tymi preg_matchami - wyglada to tak jakby autor celowo uzyl tabow, aby wskazac ze ten return jest pod if'a Ten post edytował kaźmirz 17.03.2011, 00:13:22 |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 370 Pomógł: 43 Dołączył: 1.12.2007 Skąd: Kędzierzyn Koźle Ostrzeżenie: (0%)
|
jeśli $test = true wynikiem będzie "jest nie ma", jeśli $test = false, wynikiem będzie samo "nie ma".
|
|
|
|
Post
#11
|
|
|
Grupa: Administratorzy Postów: 1 552 Pomógł: 211 Dołączył: 7.07.2009 Skąd: NJ |
!*!, zgubił else w swoim przykładzie (stąd poprawka poniżej). I żeby było jasne: nie, nie jest to kod o który pytałeś (bo jest konstrukcją if/else a nie samym if).
@down: To dobrze (IMG:style_emoticons/default/smile.gif) .
Powód edycji: [Daiquiri]:
|
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 2 Dołączył: 6.07.2010 Ostrzeżenie: (0%)
|
Odnosiłam się do tego co napisał !*!, pisząc że działa tak samo jak "to" poniżej. Ja Cie zrozumialem - napisalas, ze gdyby mialo to miec taki sens jak pokazal !*!, to by musialo wygladac tak, jak Ty napisalas (IMG:style_emoticons/default/smile.gif) Ten post edytował kaźmirz 17.03.2011, 00:15:54 |
|
|
|
Post
#13
|
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk |
Wersja prawidłowa
Ale TAKIEJ konstrukcji
NIE UŻYWAMY! Oczywiście zadziała, ale xdebug podczas generowanie pokrycia kodu FAŁSZYWIE oznaczy linijkę z "echo 'cos';" na wykonaną odrazu gdy tylko dojdzie do sprawdzenia warunku w IF. Jest to fatalny błąd, jeżeli chcecie robić wszelkiego rodzaju testy jednostkowe z raportem pokrycia kodu. Błąd jest NIENAPRAWIALNY i wynika z ułomności parsera PHP (a nie XDebuga). Dlatego zawsze stosujemy klamry w If-ach, while, foreach, itd itd |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 1 495 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%)
|
Tak informacyjnie, to jest jeszcze krótka wersja if/else. Czyli to:
Można zapisać tak:
Ten post edytował sadistic_son 17.03.2011, 00:43:46 |
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 19:10 |