View Full Version : [PHP]Problemi di visibilità
The Incredible
05-10-2007, 10:45
ho un progetto con + cartelle e file..
se in tutte vogli condividere un array $pippo che è contenuto in un file
come posso fare?
io pensavo includo in un file che viene sempre richiamato e a sua volta richiama altri file..ma niente per funzionare in tutte le pagine devo includerlo..
non c'è un modo per includerlo in tutte?
esempio
file da includere: ita.php che contiene array $pippo;
funzioni.php (file che viene sempre richiamato e che contiene un require a ita.php)
vari file che richiedono funzioni.php ma che non vedono l'array pippo contenuto in ita.php..
spero di essermi spiegato..come posso risolvere?
Grazie
file da includere: ita.php che contiene array $pippo;
funzioni.php (file che viene sempre richiamato e che contiene un require a ita.php)
vari file che richiedono funzioni.php ma che non vedono l'array pippo contenuto in ita.php..Innanzitutto bisogna vedere dove hai messo i require, ad esempio se li hai messi all'interno di blocchi { } (es. funzioni o if). Poi bisogna vedere quali path eventualmente hai specificato nel require. Infine bisogna vedere dove hai usato la variabile inclusa, ad esempio se in una funzione, perché una variabile anche se inclusa non è automaticamente "globale".
prova con l'INCLUDE... la cosa funziona; almeno a me :)
ovviamente in funzioni, l'include - ma credo anche il require - dell'ita deve essere all'inizio e fuori da condizioni.
The Incredible
05-10-2007, 11:55
non funziona ne con include ne con require che uso..
non vorrei che l'unica soluzione sia quella di rendere l'array dentro a ita.php globale.
The Incredible
05-10-2007, 12:09
niente nn funziona neanche con global..
c'è qlc che sbaglio..
allora ricapitoliamo
ita.php
<?php
$lp = array(
//Menu
"Titolo" => "pippo")
?>
poi c'è
function.php con varie funzioni tra cui top e foot..
e poi ci sono le varie pagine...
se metto nelle funzioni top e foot
il require a ita.php riconoscono l'array lp mentre
se metto in cima a function il require all'array non lo vede nessuno:
global $lp;
require_once($_SERVER['DOCUMENT_ROOT'].'/lang/ita.php');
non vorrei che l'unica soluzione sia quella di rendere l'array dentro a ita.php globale.Leggi:
http://it.php.net/manual/en/language.variables.scope.php
Ma quel
global $lp;
require_once($_SERVER['DOCUMENT_ROOT'].'/lang/ita.php');
lo metti nelle funzioni o fuori?
Perchè in realtà dovresti fare:
require_once($_SERVER['DOCUMENT_ROOT'].'/lang/ita.php');
function cippirimerlo()
{
global $lp;
}
global $lp; fuori dalle funzioni non ha nessuna utilità, sono le funzioni che hanno uno scope diverso.
The Incredible
05-10-2007, 12:22
Leggi:
http://it.php.net/manual/en/language.variables.scope.php
ok..grazie..
devo mettere global dentro alle funzioni.. :)
non c'è altro modo vero?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.