有关于php if () 和!及正则函数preg_match判断问题

$m=_get('m',null,'_T');if(!$m||!preg_match("/^[a-z]+$/",$m)){$m=$_G['cfg']['index_mod... $m = _get('m', null, '_T');
if(!$m || !preg_match("/^[a-z]+$/", $m)) {
$m = $_G['cfg']['index_module'];
} else {
$m = 'index';
}
这段代码是怎么解读的?丫是没看明白if(!$m || !preg_match("/^[a-z]+$/", $m)) 这段

求教。。。
明白了,if (表达式) {
符合条件执行的内容
}
这个总是先判断表达式结果是不是真的再执行。
展开
 我来答
rockmant
2011-12-11 · TA获得超过2247个赞
知道小有建树答主
回答量:904
采纳率:0%
帮助的人:529万
展开全部
if(!$m || !preg_match("/^[a-z]+$/", $m))
! 是不为真 即0, false或null 等值
|| 是OR的意思即或者
!preg_match 即不匹配
上面的代码是判断$m 这个值是0, 空值或false时, 或者 不匹配英文字母就执行下面的代码
追问
if ()的逻辑判断思路是如何的?是不是先判断括号里的表达式结果为真还是表达式结果是什么就执行什么?还是搞不太明白 
if () {
}else{
}
的判断方式。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lqing2006
2011-12-11 · TA获得超过1233个赞
知道小有建树答主
回答量:793
采纳率:0%
帮助的人:814万
展开全部
preg_match("/^[a-z]+$/", $m)中/^[a-z]+$/是正则表达式,这个表达式的意思是所有匹配的英文字符串。
if(!$m || !preg_match("/^[a-z]+$/", $m))意思是非空且不是英文字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
382262106
2011-12-11 · 超过58用户采纳过TA的回答
知道答主
回答量:182
采纳率:100%
帮助的人:182万
展开全部
如果$m的布尔值为false或者$m不为小写字母时,执行 $m = $_G['cfg']['index_module']; 否则 $m = 'index';
其实前一个判断是完全没必要的,这种判断在preg段完全可以实现!

参考资料: http://hi.baidu.com/382262106

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式