Portál AbcLinuxu, 30. října 2025 22: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.