Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[已答复] 是bug还是?

[复制链接]
龙翔天下 发表于 2010-3-9 17:36:13 | 显示全部楼层 |阅读模式
//系统频道
if($_SGET['action'] != 'index') {
        if(empty($channels['menus'][$_SGET['action']]['upnameid']) && $channels['menus'][$_SGET['action']]['upnameid'] != 'news') {
                $scriptfile = S_ROOT.'./'.$_SGET['action'].'.php';
        } else {
                $scriptfile = S_ROOT.'./news.php';
        }
在/index.php文件中,100行,大家看加亮部分,是不是有点说不通呢?
是康盛团队故意这么写的还是怎么回事,反正我没看明白。
回复

使用道具 举报

lidq.jingwu 发表于 2010-3-9 17:48:42 | 显示全部楼层
说得通啊,先判断是否有首页,如果是首页就不再加载其他的文件了。
empty($channels['menus'][$_SGET['action']]['upnameid'])判断父频道是否为空,不为空,则有可能是资讯频道。
$channels['menus'][$_SGET['action']]['upnameid'] != 'news'判断是否是资讯频道,不是的话,就加载应有的页面。
回复

使用道具 举报

 楼主| 龙翔天下 发表于 2010-3-10 08:44:17 | 显示全部楼层
本帖最后由 龙翔天下 于 2010-3-10 11:52 编辑

首先判断$channels['menus'][$_SGET['action']]['upnameid']为空,然后判断$channels['menus'][$_SGET['action']]['upnameid']不等于news。如果第一条件成立,即为空,那么第二条件不等于news就肯定成立,整个if语句为真;如果第一个条件不成立,那么第二个条件就不用判断了,整个if语句条件为假,因此这个if语句完全可以只判断第一个条件,第二个条件还需要判断吗?。if(empty($channels['menus'][$_SGET['action']]['upnameid']) && $channels['menus'][$_SGET['action']]['upnameid'] != 'news')我觉得应该是这样,楼上的说呢?
回复

使用道具 举报

lidq.jingwu 发表于 2010-3-10 12:20:35 | 显示全部楼层
你的见识正确,第一个判断是为了区分是否是复制的文章频道,已经可以将结果区分出来,第二个判断可以去掉。
第二个判断,所有的系统内置的非文章频道的upnameid都是空,永远都不会等于news,所以说它永远成立,去掉也不影响程序的判断。
回复

使用道具 举报

 楼主| 龙翔天下 发表于 2010-3-10 13:48:41 | 显示全部楼层
谢谢楼上的解答,谢谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-8-23 13:04 , Processed in 0.114422 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表