Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Takie podstawowe pytanie, komenda exit
rafino132
post 20.08.2014, 12:55:22
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 20.08.2014

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


Witam
Jestem bardzo początkujący. Uczę się PHP z vademecum(PHP i MySQL wyd.4), wcześniej co nieco się uczyłem C++, ale też raczej podstawy.

Chodzi o to, że gdy używam komendy exit kończy się wykonywanie wszystkich skryptów na stronie(dobrze rozumiem, tak?) a ja za moim skryptem głównym ma trochę htmla i potem jeszcze taki mały skrypcik:
  1. <?php require('aside.inc'); ?>

który ma mi wywoływać menu boczne, ale gdy dochodzi do wywołania komendy exit, tego skryptu też mi nie wykonuje

W moim przypadku funkcja break nie spełniłaby tu tego zadania.

Co mogę zrobić, z góry dzięki za pomoc smile.gif
Go to the top of the page
+Quote Post
nospor
post 20.08.2014, 12:57:53
Post #2





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




No to jak nie chcesz przerywac skryptu to nie wywoluj tego EXIT... to chyba logiczne....

Po co go w ogole wywolujesz? Podaj cały kontekst problemu a nie wyskakujesz z "dziwnym" i nielogicznym problemem wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rafino132
post 20.08.2014, 13:10:49
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 20.08.2014

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


Ogólnie, to właśnie problem rozwiązałem, więc przepraszam w ogóle za fatygę.

Chodziło o to, że napisałem taką prostą wyszukiwarkę do wyszukiwania komentarzy(zapisanych w pliku .txt) po imieniu nazwisku albo frazie występującej w komentarzu.
I komenda exit była potrzebna gdy nie było żadnych komentarzy, żeby w ogóle nie wykonywał reszty skryptu. Ogólnie sobie poradziłem, chyba nawet w ok sposób. Ale takie pytanie:

Czy można jakość zrobić komendę przenoszącą do innego miejsca w skrypcie. W odpowiednim if'ie zrobiłbym komendę która przenosiłaby na koniec i wyszłoby na to samo.
Go to the top of the page
+Quote Post
!*!
post 20.08.2014, 13:13:55
Post #4





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(rafino132 @ 20.08.2014, 14:10:49 ) *
Czy można jakość zrobić komendę przenoszącą do innego miejsca w skrypcie.

http://php.net/manual/en/control-structures.goto.php


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
rafino132
post 20.08.2014, 13:15:44
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 20.08.2014

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


Dzięki smile.gif
I sorry, faktycznie, podstawa.
Go to the top of the page
+Quote Post
nospor
post 20.08.2014, 13:19:10
Post #6





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Uzywanie GOTO to ZLO.

To co chcesz zrobic powinienies zrobic poprzez IFowanie kodu ktory ma sie wykonac gdy są komentarze lub nie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tzm
post 20.08.2014, 13:22:45
Post #7





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

Ostrzeżenie: (10%)
X----


Dlaczego zło?
Go to the top of the page
+Quote Post
nospor
post 20.08.2014, 13:23:20
Post #8





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Bo masz potem w kodzie burdel nie do ogarnięcia.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tzm
post 20.08.2014, 13:27:35
Post #9





Grupa: Zarejestrowani
Postów: 675
Pomógł: 58
Dołączył: 17.12.2013

Ostrzeżenie: (10%)
X----


W php5.3 wprowadzają śmieci które robią syf? nielogiczne.
Chętnie uzasadnienie poczytam jak masz chwilę jakieś bardziej bogate co by na przyszłość wiedzieć kiedy można uzywać goto a kiedy nie.
Go to the top of the page
+Quote Post
nospor
post 20.08.2014, 13:31:01
Post #10





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




http://php.net/manual/en/control-structures.goto.php
Masz tam zaraz na początku taki zajebisty obrazek pokazujący co nawet oni myślą o GOTO tongue.gif

Nudzili się to dodali. Dzieki temu za pare lat będą mieli co dać do DEPRECATED wink.gif
A na powaznie: czasami, bardzo czasami, cholernie bardzo czasami moze zajść potrzeba uzycia GOTO. Te czasy nastaną gdy będziesz programował 150lat. I po to wlasnie dodano GOTO na tę właśnie okolicznosc.

W normalnych przypadkach uzywasz IFa co i w tym przypadku powinno zostać również użyte.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ZaXaZ
post 20.08.2014, 13:34:38
Post #11





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(nospor @ 20.08.2014, 14:31:01 ) *
http://php.net/manual/en/control-structures.goto.php
Masz tam zaraz na początku taki zajebisty obrazek pokazujący co nawet oni myślą o GOTO tongue.gif

Nudzili się to dodali. Dzieki temu za pare lat będą mieli co dać do DEPRECATED wink.gif
A na powaznie: czasami, bardzo czasami, cholernie bardzo czasami moze zajść potrzeba uzycia GOTO. Te czasy nastaną gdy będziesz programował 150lat. I po to wlasnie dodano GOTO na tę właśnie okolicznosc.

W normalnych przypadkach uzywasz IFa co i w tym przypadku powinno zostać również użyte.


goto jakby łamie grawitacje skryptu czego if nie może (CHYBA), tak jak w użyciu funkcji preparowanych PDO.
tzn, if moze korzystać wedlug rzeczy z gory a goto z dolu;

Ten post edytował ZaXaZ 20.08.2014, 13:38:38


--------------------
Go to the top of the page
+Quote Post
peter13135
post 20.08.2014, 14:19:54
Post #12





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Cytat(ZaXaZ @ 20.08.2014, 14:34:38 ) *
goto jakby łamie grawitacje skryptu czego if nie może (CHYBA), tak jak w użyciu funkcji preparowanych PDO.
tzn, if moze korzystać wedlug rzeczy z gory a goto z dolu;

Czy możesz jaśniej ?
Co to są "funkcje preparowane PDO" ? arrowheadsmiley.png i co to ma wspólnego z if/goto ?
Co to grawitacja skryptu ?
Co to jest "korzystanie według rzecz z góry / z dołu"


Raptem dwie linijki tekstu i tyle mądrości smile.gif

Są osoby, które uważają, że break oraz continue jest nieeleganckie - nieczytelne i zamiast tego powinno się stosować instrukcje warunkowe. Osobiście często stosuje te instrukcje. Nie wydaje mi się, żeby to było mocno istotne, przynajmniej wtedy gdy bloki kodu mają sensowne długości.
goto jest o tyle gorsze, że nie wiesz od razu dokąd będzie skok - może to być dowolne miejsce w programie, dlatego na tym czytelność mocno traci. W przypadku break i continue wiesz, że program wychodzi z pętli albo przerywa "bieżącą iterację pętli", więc tu jest mniej myślenia - mimo to te instukcje trzeba używać ostrożnie (goto lepiej nie używać).

Ten post edytował peter13135 20.08.2014, 14:21:34


--------------------
:)
Go to the top of the page
+Quote Post
ZaXaZ
post 20.08.2014, 14:30:05
Post #13





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(peter13135 @ 20.08.2014, 15:19:54 ) *
Czy możesz jaśniej ?
Co to są "funkcje preparowane PDO" ? arrowheadsmiley.png i co to ma wspólnego z if/goto ?
Co to grawitacja skryptu ?
Co to jest "korzystanie według rzecz z góry / z dołu"


Raptem dwie linijki tekstu i tyle mądrości smile.gif


Funkcje/Instrukcje preparowane PDO
co do grawitacji nie wiem jak sie wyrazic wiec uzylem "tzn" biggrin.gif
rzeczy czyli np. $zmiennej.

pozwole sobie zacytować skrypt z książki dzięki któremu mi się goto skojarzyło:

  1. <?php
  2. $db_conn = new PDO('mysql:host=localhost;dbname=recipes', 'użytkownik-php', 'sekret');
  3.  
  4. // Pobranie jednego przepisu
  5. $sql = 'SELECT recipes.name, recipes.description, categories.name as category
  6. FROM recipes
  7. INNER JOIN categories ON categories.id = recipes.category_id
  8. WHERE recipes.chef = :chef
  9. AND categories.name = :category_name';
  10.  
  11. $stmt = $db_conn->prepare($sql);
  12.  
  13. // Związanie wartości chef, chcemy tylko przepisy Sylwii
  14. $stmt->bindValue(':chef', 'Sylwia');
  15. $stmt->bindParam(':category_name', $category);
  16.  
  17. // Przystawki
  18. $category = 'Przystawka';
  19. $stmt->execute();
  20. $starters = $stmt->fetchAll();
  21.  
  22. // Deser
  23. $category = 'Deser';
  24. $stmt->execute();
  25. $pudding = $stmt->fetchAll();
  26. ?>


Ten post edytował ZaXaZ 20.08.2014, 14:35:37


--------------------
Go to the top of the page
+Quote Post
Turson
post 20.08.2014, 14:39:18
Post #14





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Nie wiem co to ma wspólnego z goto
Go to the top of the page
+Quote Post
nospor
post 20.08.2014, 14:41:27
Post #15





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Pewnie chodzi o to, że tutaj
$stmt->bindParam(':category_name', $category);
wykorzystujesz zmienną $category, której wartosci ustawiasz dopiero później. Takie zachwianie "grawitacji". Podobnie moze byc z goto, gdy skaczesz ni gruszki ni z pietruszki na gore skryptu


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ZaXaZ
post 20.08.2014, 14:41:53
Post #16





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

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


Cytat(Turson @ 20.08.2014, 15:39:18 ) *
Nie wiem co to ma wspólnego z goto


  1. $stmt->bindParam(':category_name', $category);

masz na górze, a na dole przypisujesz $category ?


--------------------
Go to the top of the page
+Quote Post
Turson
post 20.08.2014, 14:42:27
Post #17





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Ok już widzę, nie chciało mi się aż tak tego analizować
Go to the top of the page
+Quote Post
peter13135
post 20.08.2014, 15:12:49
Post #18





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Cytat
Funkcje/Instrukcje preparowane PDO

Wiem na czym polega bindowanie i preparowanie zapytań w PDO i podobnych narzędziach.
Czepiam się samego określenia "funkcje preparowane" - nie bardzo wiem na czym polega owe preparowanie funkcji. Co trzeba zrobić, żeby spreparować funkcję ?

Natomiast nadal nie widzę związku PDO z goto. W językach programowania, gdzie "wszystko jest obiektem", tego typu "cuda" są dość powszechne.

PS. Tak wiem, że jestem wredny smile.gif


--------------------
:)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 00:09