2010-10-17 2 views
2

Je suis en train d'accéder à une variable définie dans le fichier parent à l'intérieur du fichier requis, comme ceci:variable PHP définie dans le fichier « parent » non reconnu dans le fichier « nécessaire »

< < < parent.php >> >

$controller = 'index'; 
require ('child.php'); 

< < < child.php >>>

echo $controller; 

en quelque sorte, je reçois une sortie nulle, ce qui signifie que la variable n'est pas accessible via child.php .. Est-ce que je fais quelque chose de mal ici? si possible, s'il vous plaît laissez-moi savoir comment je peux appeler la variable ci-dessus dans mon fichier child.php, si ci-dessus semble être faux.

Cordialement
Nikhil Gupta

+1

Cela devrait fonctionner de cette façon. Êtes-vous sûr à 100% que 'child.php' est inclus? –

+0

Essayez d'imprimer "test" comme une constante pour vous assurer que le fichier est inclus comme Pekka a dit ... – tpow

+0

@Pekka: oui, child.php est inclus. D'autres fonctions à l'intérieur de child.php se font facilement fonctionner. @cinqo: Oui, le fichier est inclus. – Stoic

Répondre

4

Est-ce votre variable déclarée en dehors d'un corps de la fonction? Si non, il doit être.

Aussi, lorsque vous appelez la variable de votre fichier enfant, essayez « initialiser » avec le mot-clé global avant de l'utiliser ...

comme

Global $myParentVariable; 

... essayez de l'imprimer. En outre, à des fins de débogage, définissez la variable sur une constante dans votre fichier parent au lieu de dériver la valeur dans certaines fonctions. En d'autres termes, assurez-vous que ce n'est pas une fonction qui transforme la valeur en valeur nulle. (Je vois que vous le faites dans le post - mais je ne sais pas si vous l'avez modifié pour plus de simplicité)

+0

bien ouais .. dans le child.php, j'essaie de passer cette $ controller variable dans une fonction (comme paramètre), mais cela ne devrait pas affecter ce droit? J'ai également essayé de vider la variable via une instruction print (et var_dump) et les deux m'ont donné une sortie nulle. La chose la plus étrange est que cela fonctionne sur mon localhost mais mon serveur ne l'aime pas en quelque sorte. – Stoic

+0

@Stoic - pouvez-vous poster le code réel? – tpow

+0

. J'ai fourni le code ci-dessus .. – Stoic

0

C'est étrange. Essayez de voir si la variable fait partie des variables définies:

$vars = get_defined_vars(); 
print_r($vars); 

Aussi, si votre variable existe dans une fonction, vous pouvez globaliser avec mot-clé global.

+0

Ouais, je n'accède pas à la variable à l'intérieur de la fonction, essayant juste de la passer en paramètre pour la fonction. : | – Stoic

1

Très bien, vous avez le problème ici. C'était une erreur de ma part, je suppose. L'erreur n'était pas dans les lignes ci-dessus, mais en quelque sorte une autre variable était plutôt que d'accéder au php parent, accédait directement à l'enfant php. Donc, devinez, cela fonctionne maintenant, pourquoi les variables n'étaient pas disponibles.

Questions connexes