discuz里的一行代码看不懂?

pak001 2010-08-08 10:38:46

!defined('CURSCRIPT') && define('CURSCRIPT','');

这行代码为什么是:检查是否定义一个产量,如果没定义,则定义为空?这样的话,是相当于if语句那样子?
...全文
99 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jlzan1314 2010-08-09
  • 打赏
  • 举报
回复
没定义,就定义,就这意思.
xuzuning 2010-08-09
  • 打赏
  • 举报
回复
对!

!defined('CURSCRIPT') && define('CURSCRIPT','');

相当于
if(!defined('CURSCRIPT')) define('CURSCRIPT','');

「已注销」 2010-08-09
  • 打赏
  • 举报
回复
!defined('CURSCRIPT') && define('CURSCRIPT','');

这是短路原理
如果 && 之前的错了 也就是 CURSCRIPT已经定义过了
那么就不用执行后半句了
如果没有定义
即 !defined('CURSCRIPT') 为真~继续执行后半句~
这样做效率比较高
ErikChen1985 2010-08-08
  • 打赏
  • 举报
回复
以上正解
amani11 2010-08-08
  • 打赏
  • 举报
回复
|| 只有左边假,才会执行右边

&& 只有左边真,才会执行右边
Dleno 2010-08-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cqiangren 的回复:]

&&只判断一边,当左边为真时,不执行右边,当左边为假时才执行右边~~
[/Quote]

你说反了,应该是左边为真,右边才执行,左边为假才不执行右边。

而用||则无论真假都会执行
amani11 2010-08-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cqiangren 的回复:]

&&只判断一边,当左边为真时,不执行右边,当左边为假时才执行右边~~
[/Quote]


你理解反了
pak001 2010-08-08
  • 打赏
  • 举报
回复
&&只判断一边,当左边为真时,不执行右边,当左边为假时才执行右边~~
CodeBus 2010-08-08
  • 打赏
  • 举报
回复
你说得没错,是逻辑与,!defined('CURSCRIPT')为真 则执行后面的 define('CURSCRIPT','');

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧