Passer des variables aux fichiers inclus dans PHP
PHP fournit un moyen pratique d'inclure des fichiers externes dans des scripts à l'aide de l'instruction include. Cependant, lorsqu'ils tentent de transmettre des variables aux fichiers inclus, certains utilisateurs sont confrontés à des difficultés.
Dans les anciennes versions de PHP, il était nécessaire de transmettre explicitement les variables en utilisant des approches telles que les variables globales ou les méthodes d'assistance. Cependant, dans les versions modernes de PHP, cela n'est plus nécessaire.
Toute variable PHP définie avant l'appel d'include est automatiquement disponible dans le fichier inclus. Pour illustrer cela, considérons l'exemple suivant :
// In the main file:
$variable = "apple";
include('second.php');
// In second.php:
echo $variable; // Output: "apple"
Cette approche simple vous permet de partager des variables entre le fichier principal et les fichiers inclus de manière transparente.
Il est important de noter que si une variable est définie dans un fichier inclus , il ne sera disponible que dans ce fichier. Pour transmettre des variables dans une fonction qui appelle include inside, vous pouvez utiliser la fonction extract().
function includeWithVariables($filePath, $variables = [], $print = true)
{
// Extract the variables to a local namespace
extract($variables);
// Start output buffering
ob_start();
// Include the template file
include $filePath;
// End buffering and return its contents
$output = ob_get_clean();
if (!$print) {
return $output;
}
echo $output;
}
Cela vous permet de transmettre des variables à un fichier inclus tout en conservant la flexibilité d'utilisation d'une fonction.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3