<?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。额外的判断可以让调试人员更容易的知道到底发生了什么事情。
帮助到你的话请采纳哦。追问
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关闭这些警告)。追问
这样的判断可以不要,输出一个0而已
if( isset($latest_list) && !empty($latest_list) )
这样的判断是必须的,因为当没有这个变量的时候,后面的$latest['acn_title']调用可能会带来一个警告(当然可以修改PHP.INI关闭这些警告)。追问
f( $key!=0 )是为了跳过第一条记录,同样谢谢您的回答
第3个回答 2013-05-13
有的时候可以不判断有的时候必须判断 要不然会报错,当需要非空变量的时候程序不能继续运行会出错。 具体分情况, 不过最好还是加下判断这样才正规
第4个回答 2013-05-13
如果不判断的话,,,会报一个警告。。。这样是为了代码完整!