2009-09-09 5 views
0

Je me demande s'il existe un moyen de passer une variable à un fichier que vous incluez via include()?PHP: Passer une variable à un fichier que vous incluez?

J'ai essayé mais nous avons eu une erreur:

include("header_alt.php?img=hey"); 

Est-il possible de le faire?

Merci! Déterminez simplement votre variable dans le premier fichier,

+1

Il est terrible idée, AMHA ...;) – IProblemFactory

+0

Cela peut certainement être abusé et rendre votre code un gâchis. Je ferais très certainement un certain pseudo-espacement des variables pour éviter les collisions et rendre les choses un peu plus maintenables. –

Répondre

2

par exemple, dans temp.php:

<?php 
$my_var = 10; 

include 'temp-2.php'; 

die; 
?> 

et l'utiliser dans le second fichier; temp-2.php:

<?php 

var_dump($my_var); 

?> 

Et il devrait fonctionner: je reçois cette sortie, de temp-2.php:

int 10 


La syntaxe de chaîne de requête, en utilisant des trucs comme ?img=hey est utilisé lorsque vous demandez une les données d'un serveur distant (comme lorsque vous utilisez votre navigateur pour surfer sur des sites Web), pas lorsque vous incluez un fichier qui se trouve sur le même serveur.

+0

Merci, pour l'info. J'avais déjà utilisé ce que vous aviez déjà suggéré, je me demandais juste comment rendre la var visible uniquement depuis la page incluse. Mais malade continue juste à le faire de la même manière. Merci. –

+0

De rien :-) Amusez-vous! –

1

Smarty fournit un très bon mécanisme pour ce genre de chose. De plus, l'utilisation de Smarty ne fait que de meilleures applications php.

http://www.smarty.net/manual/en/language.function.include.php

Variables can be passed to included templates as attributes. Any variables explicitly passed to an included template are only available within the scope of the included file. Attribute variables override current template variables, in the case when they are named the same.

All assigned variable values are restored after the scope of the included template is left. This means you can use all variables from the including template inside the included template. But changes to variables inside the included template are not visible inside the including template after the {include} statement.

Questions connexes