Initialiser les Variables Globales en PHP
Est-il une bonne pratique pour initialiser une variable globale en PHP? L'extrait de code semble fonctionner très bien, mais est-il préférable d'initialiser (dans un projet plus vaste, par exemple pour la performance de saké) la variable en dehors d'une fonction, comme dans le deuxième scratch de code?
if(isset($_POST["Return"]))Validate();
function Validate(){
(!empty($_POST["From"])&&!empty($_POST["Body"]))?Send_Email():Fuss();
};
function Send_Email(){
global $Alert;
$Alert="Lorem Ipsum";
mail("","",$_POST["Body"],"From:".$_POST["From"]);
};
function Fuss(){
global $Alert;
$Alert="Dolor Sit"
};
function Alert(){
global $Alert;
if(!is_null($Alert))echo $Alert;
};
Avis de la variable $d'Alerte ci-dessus n'est pas initialisé.
$Alert;
if(isset($_POST["Return"]))Validate();
function Validate(){
(!empty($_POST["From"])&&!empty($_POST["Body"]))?Send_Email():Fuss();
};
function Send_Email(){
global $Alert;
$Alert="Lorem Ipsum";
mail("","",$_POST["Body"],"From:".$_POST["From"]);
};
function Fuss(){
global $Alert;
$Alert="Dolor Sit"
};
function Alert(){
global $Alert;
if(!is_null($Alert))echo $Alert;
};
Remarque maintenant qu'il est.
J'apprécie toute les réponses! Merci d'avance, Jay
Vous devez vous connecter pour publier un commentaire.
Dans le deuxième exemple, vous n'êtes toujours pas déclarer la variable, la ligne
ne pas céder
$alert
une valeur de sorte qu'il reste non déclarées.Si vous déclarez la variable d'abord, vous pouvez y accéder plus facilement, sans générer d'avis:
À mon avis (et je ne suis pas le seul à penser ça), il est de bonne pratique de pas utiliser des variables globales.
Vous pouvez trouver un couple d'arguments ici.
Si vous avez vraiment besoin d'utiliser des variables globales, mais, il est probablement préférable de les initialiser, ou
isset
afin de déterminer si elles l'ont été.Bien, à l'aide d'une variable qui n'a pas été initialisé va déclencher un avis en php, donc l'initialisation des variables, c'est toujours mieux que de ne pas l'initialisation d'eux.
Ne pas utiliser de variables globales, sont une mauvaise parctice et ne sera pas disponible dans PHP6. Si vous avez besoin de valeurs disponibles à travers les pages/classes, pourquoi ne pas créer une classe d'énumération? Voir un exemple ici: http://riccardotacconi.blogspot.com/2009/05/enumerator-class-in-php.html
Fondamentalement vous d'inclure votre classe et vous obtenez la valeur de cette manière: QYourClass::Alerte
Selon cette page variables globales ne sont pas aboli dans PHP6, mais plutôt registre des variables globales. Les variables globales ont un certain nombre d'utilisations (certains sont de bonne pratique, certains ne le sont pas) et sont essentiellement sécuritaire. Register globals sont une grave faille de sécurité, et à juste titre, ont été dépréciées.
Je ne pense pas que c'est faisable, donc je suis ferrailler. Les variables globales sont abandonnés dans PHP6 et d'une Constante, par définition, ne peuvent avoir la valeur a changé. Merci à tout le monde, j'apprécie chaque réponse et tous ceux qui ont contribué.