楼上几个的回答都值得借鉴。我也写几句哈。
成都创新互联主要从事成都做网站、网站设计、外贸营销网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务福海,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
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。额外的判断可以让调试人员更容易的知道到底发生了什么事情。
帮助到你的话请采纳哦。
用户名(字符型),
我理解的字符型包括 数字,字母,下划线
//php正则判断比较好
$preg = '/^[0-9a-zA-z_]{0,}$/';
if(!preg_match($preg,'中文')){
echo "输入信息不是数字字母下划线";
}else{
echo "正确";
}
整型方法:
intval();强制转换为整型,然后判断是否为空
//php正则判断
$preg = '/^[0-9]{0,}$/';
if(!preg_match($preg,'中文')){
echo "输入信息不是数字";
}else{
echo "正确";
}
模式匹配符:
\:转义字符 例如:\b转义了b
^:正则表达式开始符号
$:正则表达式结束符号
*:匹配前面的字符出现0次或者n次
+:匹配前面的字符出现1次或者n次
?:匹配前面的字符出现0次或者1次
.:匹配除了换行符以外的所有单个字符
|:或者的意思,例如x|y 匹配x或者y
{n}:匹配前面的n个字符
{n,m}:匹配至少n个最多m个前面字符
[xyz]:匹配中括号里的任意一个字符
[^xyz]:匹配除了中括号里的任意一个字符等价于[0-9]
\w:匹配任意一个数字或字母或下划线等价于[A-Za-z0-9_]
\d:匹配任意一个0--9之间的数字
模式修正符:
i:忽略大小写
楼上正解,当用户做一些无关紧要的访问时,仅需判断session或cookie相关变量是否存在以及是否为空即可,如若涉及关键、敏感的操作,则就要比对数据库了。session由于数据放在服务器端,相对比较安全,感觉如果不太重要的话,没有必要每次页面访问都要与数据库比对,cookie的话就不好说了,在客户端容易被篡改,但可以用blowfish、xxtea等加密的方法来解决
?php
$arr = array('台湾','香港','上海','广东','浙江');
$arg = '上海';
foreach($arr as $key = $val) {
if($val == $arg) {
echo "{$val}与{$arg}匹配\n";
} else {
echo "{$val}与{$arg}未匹配\n";
}
}
/**
*
台湾与上海未匹配
香港与上海未匹配
上海与上海匹配
广东与上海未匹配
浙江与上海未匹配
*/
if(!empty($data)) echo 'xxxxxx';
数据存在则输出,不存在不输出~就相当于隐藏了。