为什么php输出之前要先做判断,不判断直接输出不就可以么?没有数据的话直接就是空啊,何必多一个判断

<?php if( isset($latest_list) && !empty($latest_list) ):?>

<?php foreach( $latest_list as $key=>$latest ):?>
<?php if( $key!=0 ):?>
<li><span class="fr date">[<?php echo getDatetimeStr($latest['acn_modified'], 'n-j');?>]</span><a href="<?php echo site_url('annunce/detail/'.$latest['acn_id']);?>" class="pa-l5px"><?php echo $latest['acn_title'];?></a><span class="fl notic default">公告</span></li>
<?php endif;?>
<?php endforeach;?>
<?php endif;?>

楼上几个的回答都值得借鉴。我也写几句哈。

1. 写这段代码的人水平也不高。实际上<?php if( isset($latest_list) && !empty($latest_list) ):?>这句并没有起到什么作用。同时! empty()判定和isset()是重复的,没意义。直接if(! empty($latest_list)就行了。
此外,对于一个foreach循环,它要其$latest_list必须是一个数组,否则会报错,因此在foreach之前,为了保证其有效性应该使用 if(! empty($latest_list) && is_array($latest_list))

2. if($key!=0) 某楼解释错误,这句的意思实际上是跳过数组中的第一行。

针对你的问题,一些额外的判断是为了防止代码中意料之外的错误,没有的话并不是不行,但是并不推荐。因为考虑到团队协作等,你无法总是保证传入的参数,或者函数的返回值是可用的,因此需要额外的判断保证这一点。
你的例子中的$lastest_list应该就是数据库返回的数据,谁也不能肯定它是不是返回空数组,甚至是一个false。额外的判断可以让调试人员更容易的知道到底发生了什么事情。

帮助到你的话请采纳哦。追问

if($key!=0)确实是为了跳过第一条记录,您回答的挺详细的,同时感谢各位大神的帮助,以后的学习信心满满的啦,哈哈

追答

嗯嗯,加油~ 你和超人唯一的区别就是内裤穿里面了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-13
如果不判断直接使用不存在的变量会报warning的,一般正常情况下你的网站会将相关的错误日志调整到warning级别的,这样你的错误日志里面就可能满满的都是这样的warning。要不你就可以关闭错误报告,那就无所谓了!
第2个回答  2013-05-13
f( $key!=0 )
这样的判断可以不要,输出一个0而已

if( isset($latest_list) && !empty($latest_list) )
这样的判断是必须的,因为当没有这个变量的时候,后面的$latest['acn_title']调用可能会带来一个警告(当然可以修改PHP.INI关闭这些警告)。追问

f( $key!=0 )是为了跳过第一条记录,同样谢谢您的回答

第3个回答  2013-05-13
有的时候可以不判断有的时候必须判断 要不然会报错,当需要非空变量的时候程序不能继续运行会出错。 具体分情况, 不过最好还是加下判断这样才正规
第4个回答  2013-05-13
如果不判断的话,,,会报一个警告。。。这样是为了代码完整!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网