Autor Zpráva
nethor
Profil
Zdravím,
potřebuji použít include_once v funkci. (Nejprve ověřit, jsetli soubor existuje, atd..)

Pokud include ale volám uvnitř funkce, nepředají se do includovaného souboru žádné proměnné.
zjednodušený příklad:

index.php :
<?php 
$prom = "hodnota";
LoadFile("stranka.php");
function LoadFile($soubor){ 
    include_once  $soubor;
} 
stranka.php :
<?php
var_dump($prom);

vypíše NULL.

Proměnná $prom začne být dostupná až, když do fce přidám global $prom;
Psát do fce global pro každou proměnnou může vést k chybám z opomenutí.
Funguje, když projedu $GLOBALS : foreach ($GLOBALS as $key=>$value) global $$key;
.. ale nevím, jestli si tím nezadělávám na nějaký konflikt. - Je to vpořádku?

Jde to řešit nějak lépe?
panther
Profil
nethor:
Jde to řešit nějak lépe?
promenne, ktere potrebujes, predavej jako parametr dane funkci. Pouziti global se zkus vyvarovat.
nethor
Profil
panther:
Proměnné mohu být různých jmen, typu a množství. Předávat je jako parametr je hrozně přes ruku.

Vpodstatě mi jde o to nahradit
include_once $soubor; za LoadFile($soubor);,
abych mohl veškerá ověření a akce vytáhnout do fce a nemusel je pokaždé psát znouvu:
if(!neco){}
elseif(!neco){}
elseif(!neco){}
...
else include_once  $soubor;

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: