Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] optymalny zapis
S3L41N
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 14.12.2007

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


Witam, poszukuję optymalnego sposobu na zapis poniższej funkcji (metoda w klasie, której nie wklejam):

  1. public function __get($key)
  2. {
  3. if (isset($this->$key))
  4. $value = $this->$key;
  5. elseif (isset($this->data[$key]))
  6. $value = $this->data[$key];
  7. else
  8. $value = NULL;
  9. return $value;
  10. }


Gdyby w isset() można było dokonać przypisania, to całość sprowadzałaby się do:

  1. public function __get($key)
  2. {
  3. return (isset($value = $this->$key) OR isset($value = $this->data[$key])) ? $value : NULL;
  4. }


Niestety się nie da. Ma ktoś może jakiś pomysł jak to zoptymalizować?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





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

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


Od kiedy to optymalny równa się maksymalnie krótki i nieczytelny?
  1. if (isset($this->$key)) {
  2. return $this->$key;
  3. } else if (isset($this->data[$key])) {
  4. return $this->data[$key];
  5. }
  6.  
  7. return null;
Nie kombinuj tam gdzie nie potrzeba.

EDIT: Ogólnie to masz paskudną strukturę danych.

Ten post edytował Crozin 2.08.2010, 17:55:36
Go to the top of the page
+Quote Post
zelu
post
Post #3





Grupa: Zarejestrowani
Postów: 229
Pomógł: 34
Dołączył: 7.12.2008
Skąd: Poznań

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


Cytat(Crozin @ 2.08.2010, 18:54:55 ) *
Od kiedy to optymalny równa się maksymalnie krótki i nieczytelny?



A to inna sprawa. Zapis typu ?: jest wolniejszy niz zwykly if - else, wiec Twoje rozwiązanie jest najlepsze (IMG:style_emoticons/default/smile.gif) Źle się zasugerowałem postem kolegi (IMG:style_emoticons/default/smile.gif)

Pozdro
Go to the top of the page
+Quote Post
skarabe.pl
post
Post #4





Grupa: Zarejestrowani
Postów: 142
Pomógł: 49
Dołączył: 29.07.2010

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


Cytat(zelu @ 2.08.2010, 19:02:56 ) *
A to inna sprawa. Zapis typu ?: jest wolniejszy niz zwykly if - else (...)


Czemu?
Go to the top of the page
+Quote Post

Posty w temacie
- S3L41N   [php] optymalny zapis   2.08.2010, 17:34:30
- - zelu   [PHP] pobierz, plaintext return isset( $this-...   2.08.2010, 17:40:06
- - Wicepsik   [PHP] pobierz, plaintext return $this->$key ? $...   2.08.2010, 17:41:55
|- - zelu   Cytat(Wicepsik @ 2.08.2010, 18:41:55 ...   2.08.2010, 17:49:39
- - S3L41N   No zgadza się, isset()-y celowo dałem. Dzięki za p...   2.08.2010, 17:52:59
- - Crozin   Od kiedy to optymalny równa się maksymalnie krótki...   2.08.2010, 17:54:55
|- - zelu   Cytat(Crozin @ 2.08.2010, 18:54:55 ) ...   2.08.2010, 18:02:56
|- - skarabe.pl   Cytat(zelu @ 2.08.2010, 19:02:56 ) A ...   2.08.2010, 18:13:28
- - zelu   Nie wiem dlaczego tak jest Tak wynikało z moich t...   2.08.2010, 18:14:22
|- - skarabe.pl   Cytat(zelu @ 2.08.2010, 19:14:22 ) Ni...   2.08.2010, 18:21:08
|- - fifi209   Cytat(skarabe.pl @ 2.08.2010, 18:21:0...   2.08.2010, 18:24:53
|- - skarabe.pl   Cytat(fifi209 @ 2.08.2010, 19:24:53 )...   2.08.2010, 18:47:27
|- - fifi209   Cytat(skarabe.pl @ 2.08.2010, 18:47:2...   2.08.2010, 23:53:27
|- - kapuch   Cytat(fifi209 @ 3.08.2010, 00:53:27 )...   3.08.2010, 00:00:41
|- - fifi209   Cytat(kapuch @ 3.08.2010, 00:00:41 ) ...   3.08.2010, 00:02:41
- - croc   Cytat(zelu @ 2.08.2010, 10:02:56 ) A ...   2.08.2010, 18:32:49
- - Crozin   Zacznijmy od tego, że jak masz taką konstrukcję to...   2.08.2010, 18:51:01
|- - skarabe.pl   Cytat(Crozin @ 2.08.2010, 19:51:01 ) ...   2.08.2010, 18:54:57
- - zelu   W Twojej wersji jak najbardziej zapis skrócony jes...   2.08.2010, 18:54:30
- - S3L41N   No dobrze, ważna jest czytelność kodu, a czy poniż...   2.08.2010, 23:30:23
- - Crozin   @fifi209, @kapuch: Chodziło o sytuację gdzie zależ...   3.08.2010, 00:08:34
- - S3L41N   No dobrze, ale są jakieś konkretne wytyczne kiedy ...   3.08.2010, 09:04:50
- - Crozin   No ileż można - który zapis wydaje Ci się najbardz...   3.08.2010, 11:24:22
- - S3L41N   No ok, to poprostu napisz, które zapisy Ty byś wyb...   3.08.2010, 11:58:54
- - attimo   Ja też wole 4. może i wdurgim kod jest krótszy pra...   3.08.2010, 12:04:20
- - S3L41N   attimo widzę, że chyba nie wczytałeś się w posta. ...   3.08.2010, 13:26:19
- - Crozin   #1[PHP] pobierz, plaintext $syspath = trim(FRA...   3.08.2010, 13:56:32


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 - 16:00