在PHP中初始化全局变量是否是一种好的做法?代码片段似乎工作正常,但是更好地初始化(在一个更大的项目中,出于性能考虑)函数之外的变量,比如第二次代码中的变量?使用PHP初始化全局变量
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;
};
注意上面的变量$ Alert没有被初始化。
$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;
};
现在注意到了。
我感谢任何答案!在此先感谢,杰伊
首先,感谢大家的快速回复! 无论$ Alert是否存在,我都不会收到通知。那么,当PHP看到它是第一个实例,全局或其他(在第一个片段,即:第6行)的初始化变量? – Jay 2009-07-23 11:24:21
您可能没有看到通知,因为您尚未打开它们,您可以更改php.ini以启用它们,也可以使用以下命令: error_reporting(E_ALL); error_reporting的默认值会随PHP的不同版本而变化(我想!)。但最好将它设置为E_ALL,因为您会更清楚自己的编程错误。 – Vex 2009-07-23 11:43:11
建议我已经在我们已经有的东西下面添加了一小段代码,尽管如此我仍然没有看到任何错误! error_reporting(E_ALL); ini_set(“display_errors”,1); – Jay 2009-07-23 11:57:29