Autor Zpráva
snazimse
Profil
Zdravím,

zajímalo,by mě zda se dá nějakým regulérním způsobem v phpéčku,iterovat uvnitř proměnné,kde se používají ke spojování php a stringu ,tečka?
Je to nějakým způsobem možné? Nebo se to řeší jinak? Nebo taktéž ,kdybych tam potřeboval podmínku apd?


Viz příklad:
  $foo = "string0".$bar."string1".$next."string2";  

Aby se to dalo použít nějak takto podobně při podmínce,samozřejmě,že to nefunguje:
$bar = 1;
$foo = "string0". if ($bar == 1) {$bar}."string".$next."string2";

Nebo ta iterace uvnitř proměnné:
$bar = array("1","2");
$foo = "string0". foreach ($bar as $bars) {$bars}."string".$next."string2";

Prostě,aby se dalo s tím pracovat uvnitř proměnné a foreach nebo podmínka,mi neovlivnily zbytek kodu.
Dá se to nějak realizovat? Nebo se to řeší jinak v případě proměnné a spojováním pomocí tečky?
Předpokládám,že to asi reálné,nebude,pak mě tedy zajímá ,jak to řešit?

Díky všem za pomoc!!!
juriad
Profil
if a foreach jsou statement; unvitř přiřazení (které je tu statement) můžeš používat jen expression. Najdi si rozdíl mezi těmito dvěma pojmy.
ternární operátor - použití - problémy laika

první případ můžeš vyřešit použitím ternárního výrazu:
$foo = "string0". ($bar == 1 ? $bar : "") ."string".$next."string2";

druhý pomocí funkce implode:
$foo = "string0". implode("", $bars) ."string".$next."string2";
snazimse
Profil
Ternární,je fajn,ale dá se to použít nějak na více elseif?


Implode používat na vypsání pole? Nezdá se mi to moc elegantní! Dá se to ještě jinak?

Díky moc za pomoc!
nemeja
Profil
snazimse:
Terární,je fajn,ale dá se to použít nějak na více elseif?
echo ( $xxx == true ) ? 1 : ( ($yyy == false ) ? 2 : 0);
Joker
Profil
snazimse:
dá se to použít nějak na více elseif?
Dá, ale většinou pak vzniká nepřehledný kód.

Není nutné a většinou ani žádoucí nacpat co nejvíc kódu na jeden řádek, složitější operace bude lepší rozepsat.
snazimse
Profil
Joker:
To je sice fakt,ale co s tím,když se to nedá jinak řešit,a člověk by to potřeboval.

V nouzi.
Jan Tvrdík
Profil
snazimse:
když se to nedá jinak řešit
Proč by to nemělo jít řešit normálně? I špatný systém se dá opravit.
snazimse
Profil
Jan Tvrdík:
Tím jsem myslel,používání ternárního operátoru,v proměnné,zda existuje ještě jiná cesta jak to zapsat.Pokud jste myslel, aby to nebylo na jednom řádku.
Tak to samozřejmě je lepší rozepsat.Asi moje odpověď špatně vyzněla.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0