IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Zjednodušení podmínky

Aktivity
Avatar
tomass
Člen
Avatar
tomass:14.10.2014 15:19

Zdravím, potřebuju v kódu zjistit, jestli se jedná o pole, nebo ne asi u 8 položek, tady mám podmínku 1 položky a mám jich takhle dalších 7 za sebou:

if (is_array($doc->name)) {
      $name = implode(" ", $doc->name);
    }
    else {
      $name = $doc->name;
    }

A chtěl bych se zeptat, jestli nemáte nějaký nápad jak to zjednodušit. Díky za rady.

 
Odpovědět
14.10.2014 15:19
Avatar
Ori I
Člen
Avatar
Odpovídá na tomass
Ori I:14.10.2014 17:14

a čo tak cyklus? .. možno by nebolo od veci ak by si sem poslal celý ten kód ktorý chceš zredukovať

 
Nahoru Odpovědět
14.10.2014 17:14
Avatar
MrPabloz
Člen
Avatar
Odpovídá na tomass
MrPabloz:14.10.2014 17:44

můžeš to hodit do ternarního operátoru jakby, ale myslím si ,že jednodušší už být nemůže :)

(is_array($doc->name))?$name = implode(" ", $doc->name):$name = $doc->name;
Nahoru Odpovědět
14.10.2014 17:44
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Dominik Klapuch:14.10.2014 18:25

Ahoj, zjednodušit to můžeš, ale nebude to asi moc dobře čitelné a jasné, jako tvoje stávající řešení:

<?php
$doc = "pole nebo hodnota";
$decision = [1 => implode(" ", (array)$doc), 0 => $doc];
echo $decision[(array)$doc === $doc];

Zkus, jestli ti to půjde dle očekávání.

Nahoru Odpovědět
14.10.2014 18:25
Kód a data patří k sobě.
Avatar
Odpovídá na tomass
Neaktivní uživatel:14.10.2014 18:31

Můžeš volat název proměnné ze stringu z pole, celý kód by pak vypadal nějak takto.

$polozky = array("name", "surname", /* a další věci z těch sedmi */);

foreach ($polozky as $polozka)
  if ( is_array($doc->$polozka) )
    $$polozka = implode(" ", $doc->$polozka); // uloží jako proměnnou s názvem té položky
  else
    $$polozka = $doc->$polozka;
Nahoru Odpovědět
14.10.2014 18:31
Neaktivní uživatelský účet
Avatar
Odpovídá na tomass
Martin Konečný (pavelco1998):14.10.2014 18:46

Já bych to víc nezjednodušoval. Možná jedině pomocí ternárního operátoru.

$name = is_array($doc->name) ? implode(" ", $doc->name) : $doc->name;
Nahoru Odpovědět
14.10.2014 18:46
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
tomass
Člen
Avatar
tomass:14.10.2014 19:31

Ok, díky za rady, jen sem si říkal, jestli to není nějak dlouhé že budu mít takovou nálož IFů pod sebou, takže sem měl něco na mysli, jak tu psal Fredep, tak si s tím zkusím pohrát.:)

 
Nahoru Odpovědět
14.10.2014 19:31
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.