Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Sens pisania klasy, Konkretnie coś o explode itp.
Adi32
post 6.12.2011, 16:40:28
Post #1





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Witajcie.

Mam zapotrzebowanie na pewien rodzaj klasy jednak postanowiłem napisać ponieważ może coś takiego już w PHP jest mimo że nie mogłem nic na ten temat znaleźć.

Taki prosty przykładowy kod:

  1. $explode = explode(',',$array);
  2. $first = $explode[0];
  3. echo $first;


jest dla mnie denerwujący i uciążliwy [...] dlatego planuje napisać klasę pomocniczą:

  1. echo explode::expl(',',$array)->getFirst();
  2. $numeric = explode::expl(',',$array)->getNumeric();


itp.

Dodam, że nie chodzi tylko o explode() ale w szczególności.

Czy uważacie, że takie rozwiązanie ma sens?
Pytam bo jestem zwolennikiem najlepszego możliwego rozwiązania.

Ten post edytował Adi32 6.12.2011, 16:42:09


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
Crozin
post 6.12.2011, 16:47:46
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Składnia PHP jest bardzo... niedopracowana. A raczej parser jest bardzo niedopracowany, przez co konstrukcja explode(...)[0] jest z jakiś powodów niedostępna. Jednak w tym konkretnym przypadku mógłbyś napisać:
  1. $first = reset(explode(',', $array));
Go to the top of the page
+Quote Post
Adi32
post 6.12.2011, 16:56:36
Post #3





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Cytat(Crozin @ 6.12.2011, 16:47:46 ) *
Składnia PHP jest bardzo... niedopracowana. A raczej parser jest bardzo niedopracowany, przez co konstrukcja explode(...)[0] jest z jakiś powodów niedostępna. Jednak w tym konkretnym przypadku mógłbyś napisać:
  1. $first = reset(explode(',', $array));


I właśnie z tego powodu wpadłem na pomysł napisania klasy, która byłaby przydatna nawet gdyby taka składnia była możliwa.
Ogólnie miałaby tam też zastosowanie inne funkcje zwracające tablice jak np. preg_match, preg_match_all i co tam by jeszcze nie było.

P.S. Zdawało mi się, że reset referencyjnie ustawia wewnętrzny wskaźnik tablicy na pierwszą pozycję, a nie ją zwraca?


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
Crozin
post 6.12.2011, 17:00:56
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
P.S. Zdawało mi się, że reset referencyjnie ustawia wewnętrzny wskaźnik tablicy na pierwszą pozycję, a nie ją zwraca?
Bo ustawia wew. wskaźnik tablicy na jej pierwszym elemencie, ale dodatkowo zwraca ów pierwszy element.
Go to the top of the page
+Quote Post
Adi32
post 6.12.2011, 17:04:23
Post #5





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Cytat(Crozin @ 6.12.2011, 17:00:56 ) *
Bo ustawia wew. wskaźnik tablicy na jej pierwszym elemencie, ale dodatkowo zwraca ów pierwszy element.


Dobrze wiedzieć. Nie doczytałem w manualu...

Ten post edytował Adi32 6.12.2011, 17:05:57


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
Crozin
post 6.12.2011, 17:06:28
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Przecież manual to bardzo jasno opisuje, reset:
Cytat
reset() rewinds array's internal pointer to the first element and returns the value of the first array element.


Ten post edytował Crozin 6.12.2011, 17:06:42
Go to the top of the page
+Quote Post
Adi32
post 6.12.2011, 17:07:16
Post #7





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Tak tak, zgadza się. Mam jakiś nawyk, że przewijam do przykładów.


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
vokiel
post 6.12.2011, 18:25:57
Post #8





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


PHP 5.4 daje kilka takich możliwości. Ale póki go nie ma, trzeba sobie radzić.

Poza reset można skorzystać z list:
  1. list($pierwszy_element) = explode(',', $array);


--------------------
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: 12.06.2025 - 11:35