Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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
 
Start new topic
Odpowiedzi
Sephirus
post
Post #2





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

Posty w temacie


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: 14.10.2025 - 12:09