Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]modyfikacja pętli for
limonka
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 26.10.2011

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


Witam,

to mój pierwszy post na tym forum. Gdy zachowam się nieodpowiednio, dajcie znać.

Piszę skrypt, który dużo liczy. Bardzo dużo.

Cała jego idea opiera się na pętlach for oraz if.

Chciałem uprościć skrypt i go zautomatyzować (zmienna liczba pętli).

Idea:

CODE
for(..)
{
if(warunek)
{
for(..)
{
(dalej ciąg if/for)
}}
else
{
break
}}



Chciałem użyć modułów w postaci funkcji wywoływanych.


CODE
for(..)
{
if(..)
{
funkcja();
}
else
{
break
}

funkcja()
{
for(..)
{
if(..)
{
funkcja2();
}
else
{
funkcji3();
}
}}

itd


Czy takie zastosowanie jest poprawne. Jakie może mieć wady. Jak przenieść globalnie wartości zmiennych (parametr global?)
Oczywiście istnieje też funkcja przerywająca np. funkcja5()

Z góry dzięki za pomoc. Jeśli mało czytelne mogę jakoś próbować to rozjaśnić pod względem idei;)

Ten post edytował limonka 26.10.2011, 22:48:54
Go to the top of the page
+Quote Post
IceManSpy
post
Post #2





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


1. Używaj znaczników php, a nie code.
2. PHP nie jest najlepszy do wykonywania długich skryptów. Domyślnie po 30 albo 60 sekundach przerwie Ci go.
3. Zmiennych globalnych się już nie używa.
4. Powiedz coś więcej na temat skryptu, który ma coś liczyć.
Go to the top of the page
+Quote Post
Sephirus
post
Post #3





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


@up
ad. 2. To nie jest do końca prawda - można to przecież zmienić na serwie lub poprzez chociażby set_time_limit() - oczywiście używać należy z rozwagą. (Co do tego że PHP to nie najlepszy kombajn do liczenia się zgadzam) (IMG:style_emoticons/default/smile.gif)

Możesz skorzystać ze statycznych właściwości klas zamiast zmiennych globalnych na przykład, zrobić tzw. rejestr i trzymać w nim wszystkie potrzebne zmienne a także operować na nich.

Najprostsze możliwe rozwiązanie:

  1.  
  2. class rejestr
  3. {
  4. public static $zmienne;
  5. }
  6.  
  7. rejestr::$zmienne = array([...tu_dajesz_zmienne]);
  8.  
  9. // wykorzystanie przykładowe
  10.  
  11. rejestr::$zmienne['a'] = rejestr::$zmienne['b'] + 4;
  12.  
  13. // lub
  14.  
  15. $zm = rejestr::$zmienne;
  16.  
  17. $zm['a'] = $zm['b'] + 4;
  18.  
  19. rejestr::$zmienne = $zm;
  20.  


Ogólnie do tematu można podejść wieloma drogami, można dać singleton itp. Użycie zmiennych globalnych w ostateczności też ujdzie ale popieram przedmówcę, że rzadko się już to stosuje.
Go to the top of the page
+Quote Post

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: 5.10.2025 - 05:51