Portál AbcLinuxu, 16. července 2025 05:58


Dotaz: Nemužu vypsat proměnou v proměné v php

15.4.2012 17:39 empty
Nemužu vypsat proměnou v proměné v php
Přečteno: 211×
Odpovědět | Admin
Ahoj, mám proměnou
$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
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

15.4.2012 17:48 Kit
Rozbalit Rozbalit vše Re: Nemužu vypsat proměnou v proměné v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mně to funguje dle očekávání. Vypíše se 'nadpis'.
15.4.2012 17:55 Kit
Rozbalit Rozbalit vše Re: Nemužu vypsat proměnou v proměné v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud chceš, aby obě proměnné sdílely jeden text, zkus tohle:
$h2 = &$obsah;
15.4.2012 18:01 empty
Rozbalit Rozbalit vše Re: Nemužu vypsat proměnou v proměné v php
právě že bych potřeboval dostat i tu promnou h2 nějak v te romene $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
15.4.2012 18:06 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
Rozbalit Rozbalit vše Re: Nemužu vypsat proměnou v proměné v php
Ta $h2 je lokální proměnná, která není mimo onu funkci. Stačí ve funkci použít $GLOBALS["h2"] nebo předepsat global $h2.
15.4.2012 18:14 Kit
Rozbalit Rozbalit vše Re: Nemužu vypsat proměnou v proměné v php
Vysvětlovat začátečníkovi používání globálních proměnných považuji za nezodpovědné. Ať se to naučí bez nich.
15.4.2012 18:38 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
Rozbalit Rozbalit vše Re: Nemužu vypsat proměnou v proměné v php
Otázka je, k čemu vůbec ten kód směřuje. Na ujasnění takových pojmů je dobré mít zkušenosti s programováním aspoň v Pascalu, nebo phpčku podobnějším céčku.
15.4.2012 19:11 Kit
Rozbalit Rozbalit vše Re: Nemužu vypsat proměnou v proměné v php
Nedávno se tu řešilo něco podobného. Zřejmě je to obvyklá slepá ulička začátečníků.
15.4.2012 18:12 Kit
Rozbalit Rozbalit vše Re: Nemužu vypsat proměnou v proměné v php
Tohle je ale úplně jiný případ, než v původním dotazu. Opuštěním funkce platnost lokálních proměnných zaniká.

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.
15.4.2012 18:22 empty
Rozbalit Rozbalit vše Re: Nemužu vypsat proměnou v proměné v php
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
15.4.2012 18:39 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
Rozbalit Rozbalit vše Re: Nemužu vypsat proměnou v proměné v php
15.4.2012 18:49 Kit
Rozbalit Rozbalit vše Re: Nemužu vypsat proměnou v proměné v php
Předpokládám, že ten text nebudeš dávat do PHP, ale máš ho někde uložený v databázi. Dá se to udělat třeba takto:
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
15.4.2012 21:18 empty
Rozbalit Rozbalit vše Re: Nemužu vypsat proměnou v proměné v php
Díky za ukázku, jenže kámen úrazu je ten, že já ty data nemůžu hned echem vypsat ale musím je vrátit a vypsat je až někde jinde.. :-(
15.4.2012 21:44 Kit
Rozbalit Rozbalit vše Re: Nemužu vypsat proměnou v proměné v php
A to je takový problém ty metody $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š.
15.4.2012 22:03 empty
Rozbalit Rozbalit vše Re: Nemužu vypsat proměnou v proměné v php
Bohuzel to právě problém je, jelikož z místa odkud volám ten $obsah, tak ani tam to jesště nevypisuju, navíc nejsem schopen to napřímo volat, nevím který obsah se bude načítat..
15.4.2012 21:46 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
Rozbalit Rozbalit vše Re: Nemužu vypsat proměnou v proměné v php
Stačí, když se $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.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.