如果未设置变量,则使用函数初始化变量 – PHP
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如果未设置变量,则使用函数初始化变量 – PHP,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2654字,纯文字阅读大概需要4分钟。
内容图文
![如果未设置变量,则使用函数初始化变量 – PHP](/upload/InfoBanner/zyjiaocheng/724/2c7e40babe064f1da8e03aad20f22601.jpg)
在执行脚本时,有时会设置变量,有时则不会.它不是时候,我注意到变量没有定义.
为了清除通知,我简单地添加了以下代码
if(!isset($var)) {
$var = NULL;
}
这可以正常工作,因为它测试变量是否尚未设置,以便我们不设置我们需要的东西.但是在一个文件中,有超过60个变量属于这种情况,而且还有更多变量,我认为创建一个简单的函数会更容易.所以我从这开始:
function init($var) {
if(!isset($var)) {
return $var = NULL;
}
}
显然这不起作用,也充满了会使大多数程序员烦恼的错误(例如函数内部的!isset(),如果if语句为false则不提供return语句等)但这只是为了给你我需要的基本要点,所以在代码中我可以调用init($var);测试变量是否尚未设置,然后创建一个并将其设置为NULL以避免通知.
这甚至可能吗?要使用函数来测试变量是否已在函数外部设置?提前致谢 :)
解决方法:
在将变量作为参数传递给函数的过程中,如果没有初始化变量,则无法使用函数来检查变量是否存在.但是,您可以定义脚本需要的变量名称数组,然后循环遍历它们并检查它们是否一个接一个地存在.如:
foreach(array('username','userid','userrole','posts','dob','friends') as $var)
{
if(!isset($$var))$$var=NULL;
}
编辑:简化user4035的方法,你可以将函数降低到:
<?php
function init(&$var){}
init($myVariable);
var_dump($myVariable);
甚至完全避免使用某个功能:
<?php
array(&$var1,&$var2,&$var3);//define several variables in one shot as NULL if not already defined.
var_dump($var1);
var_dump($var2);
var_dump($var3);
另一种方法是使用extract:
<?php
$defaults=array('username'=>NULL,'userid'=>0,'userrole'=>'guest','posts'=>0,'dob'=>0,'friends'=>array());
$userid=24334;
$username='bob';
$friends=array(2,5,7);
extract($defaults, EXTR_SKIP);
echo '<pre>';
print_r(
array(
'userid'=>$userid,
'username'=>$username,
'friends'=>$friends,
'userrole'=>$userrole,
'posts'=>$posts,
'dob'=>$dob)
);
echo '</pre>';
另一种方法是暂时禁用错误报告:
<?php
$v=ini_get("error_reporting");
error_reporting(0);
echo 'One';
echo $doh;//Use an undefined variable
echo ' Two';
error_reporting($v);
我建议反对这种方法,因为它只是隐藏错误而不是修复它们,并且还会隐藏值得你注意的错误.
我个人最喜欢的是利用namespaces.
通常你会将它们放在单独的文件中,但为了方便起见我将它们放在一个片段中:
<?php
namespace //This is the global namespace
{
$config=array('production'=>0);
}
namespace MyScript
{
//Initialize all variables for our script
//anything not defined here will be inherited from the global namespace
$username=NULL;
$userid=NULL;
$userrole=NULL;
$posts=NULL;
$dob=NULL;
$friends=NULL;
}
namespace MyScript\Main
{
//Define only two variables for our script
//Everything else will be inherited from the parent namespace if not defined
$username='Ultimater';
$userid=4;
echo '<pre>';
print_r(
array(
'userid'=>$userid,
'username'=>$username,
'friends'=>$friends,
'userrole'=>$userrole,
'posts'=>$posts,
'dob'=>$dob,
'config'=>$config)
);
echo '</pre>';
}
内容总结
以上是互联网集市为您收集整理的如果未设置变量,则使用函数初始化变量 – PHP全部内容,希望文章能够帮你解决如果未设置变量,则使用函数初始化变量 – PHP所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。