Portál AbcLinuxu, 16. července 2025 05:58
$obsah = $h2 = 'nadpis'; $obsah .= 'text'; $obsah .= 'jiny text'; $obsah .= 'a jeste jiny text';echo $h2; mi nic nevypíše, proč? Jak můžu dostat dvě proměné z jedné? Dík
$h2 = &$obsah;
function common(){ $obsah = $h2 = 'nadpis'; $obsah .= 'text'; $obsah .= 'jiny text'; $obsah .= 'a jeste jiny text'; return $obsah; } $obsah = common(); echo $h2; // nic se nevypiše
$h2
je lokální proměnná, která není mimo onu funkci. Stačí ve funkci použít $GLOBALS["h2"]
nebo předepsat global $h2
.
Jestli ti mohu poradit, tak se to nesnaž obejít přes globální proměnné, protože by to byla prasárna. Raději to udělej přes objekty.OK, a můžu poprosit o názornou ukázku? dík
class Clanek { private $h2; private $obsah; function __construct($klic) { $data=getFromDB($klic); $this->h2=$data['nadpis']; $this->obsah=$data['obsah']; } function getH2(){ return '<h2>'.htmlspecialchars($this->$h2).'</h2>'; } function getObsah(){ return $this->getH2().'<div id="obsah">'.htmlspecialchars($this->obsah).'</div>'; } } $clanek=new Clanek($klic); echo $clanek->getH2(); // samotný nadpis echo $clanek->getObsah(); // text článku i s nadpisem
$clanek->getH2()
a $clanek->getObsah()
zavolat tam, kde je skutečně potřebuješ? Ten příkaz echo
jsem tam dal jen jako příklad.
Tím končím. Udělej si to jak chceš.
$clanek
dostane na místo, kde bude ten text třeba, ať už jako návratová hodnota funkce, naplnění proměnné zadané odkazem, nebo jako jedna z proměnných nějakého dalšího zapouzdřujícího objektu.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.