Ce que j'essaie de faire est d'avoir un fichier PHP séparé contenant des paramètres pour le site Web, puis ayant d'autres pages incluent ce fichier et exécuter du code en fonction des paramètres. Cependant, chaque fois que j'utilise global pour référencer ces variables dans une classe, les variables sont vides. Par exemple:Pourquoi les globals sont-ils vides dans une classe lorsque les variables sont incluses?
settings.php:
<?php
$setting1 = 'on';
$setting2 = 'off';
?>
class.php:
<?php
require_once('./settings.php');
class myclass {
public function __construct {
global $setting1;
echo $setting1;
}
}
$object = new myclass;
?>
Cela imprime rien. Cependant, si je fais "echo $ setting1" en dehors de la classe, il imprime "on". Lorsque j'ai essayé de définir la variable à l'intérieur du fichier lui-même plutôt que de l'inclure, j'ai imprimé 'on' quand j'ai créé un nouvel objet pour myclass. Y at-il quelque chose de spécial que je dois faire pour rendre les variables incluses disponibles dans la portée globale de la classe?
Vous voudrez peut-être envisager la création d'une classe statique au lieu de vars globales pour des raisons de sécurité de l'espace de noms. Pour répondre directement à votre question, il semble que ce soit les problèmes de parenthèses que les autres ont mentionnés. – krdluzni
quelle version de PHP? –