Autor Zpráva
M4M
Profil *
Ahoj. Po zavolání funkce dostanu místo html kódu jen výsledek ve tvaru 1, nic víc :-( Co dělám špatně? Děkuji

[pre]
Mám funkci v php
function ukaz(){
return include_once('data.php');
}

includovany soubor data.php
$page = false;
$page .= '<h1>Nadpis</h1>';
$page .= '<p>Lorem ipsum dolor sit amet consectetuer mollis odio aliquam Mauris platea. Fusce justo condimentum ipsum Duis sem pretium dis lorem id Quisque.</p>';
$page .= '<p>Vestibulum In id natoque volutpat urna ullamcorper justo Vestibulum est vel.</p>';


zavolam funkci
ukaz(); // Výsledek je 1
[pre]
Radek9
Profil
M4M:
1) V souboru ukládaš do proměnné $page, se kterou potom nic neděláš.
2) Pokud soubor existuje, include vždy vrací 1.
function ukaz(){ 
  include_once "data.php";
  return $page;
}
M4M
Profil *
Radek9:
Právě, že bych tu prom. $page potřeboval vypsat až na tom místě odkud volám tu funkci, echo ukaz();
Radek9
Profil
M4M:
Přesně to se udělá… Vyzkoušel jsi vůbec ten kód?
M4M
Profil *
Radek9:
Ano, sorry měl jsem tam global $page; Díky moc, myslel jsem, že existuje nějaký lepší způsob...

BTW, když použiji tuhle funkci a v includovanem souboru budu mít data.php tohle

$page .= '<h1>Nadpis</h1>';
$page .= '<p>Lorem ipsum dolor sit amet consectetuer mollis odio aliquam Mauris platea. Fusce justo condimentum ipsum Duis sem pretium dis lorem id Quisque.</p>';
$page .= '<p>Vestibulum In id natoque volutpat urna ullamcorper justo Vestibulum est vel.</p>';


a zavolam funkci, před kterou nadefinuji tu prom. $page, php na mě řve, že:Notice: Undefined variable: page in... Ale proč? Vždyť existuje/je nainicializovaná (to je strašné slovo) :D Děkuji

$page = false;

echo ukaz();
Tori
Profil
M4M:
php na mě řve, že:Notice: Undefined variable: page
Includujete skript uvnitř funkce, všechny proměnné v něm použité jsou tedy lokální (to jste se zřejmě pokoušel vyřešit tim global). Buď můžete definovat proměnnou uvnitř funkce (= před include, a místo false použít prázdný řetězec), nebo místo echo ukaz() prostě použít
$page = ""; 
include 'data.php';
. Použila bych tu druhou variantu - funkci zcela zrušit.

nainicializovaná (to je strašné slovo)
To věru je. "inicializovaná" by bohatě stačilo, "definovaná" se (vzhledem k "undefined variable") dá také použít.

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