我正在分析一些代码,并得出了其中的一部分(简化示例),其中说:if ( !do_something( 'action-one' ) ) { do_something_else();}由于我在页面上看到了这个if语句的输出,我想“好吧,这就是为什么页面的这一部分显示。所以我把它注释掉:do_something_elseif ( !do_something( 'action-one' ) ) { // do_something_else();}但它仍然输出相同的内容。然后我注释掉整个if语句,输出消失。所以我意识到这是在输出我意想不到的内容。do_something难道不应该只评估为真或假,特别是因为它有(期望自动类型转换)?!do_something()!这似乎是不好的做法,应该避免?
2 回答
白猪掌柜的
TA贡献1893条经验 获得超10个赞
要知道是真是假,你的服务器必须运行该函数(因为你要求它运行)。因此,'s 和 s 将运行并显示在您的页面上。如果你的意思是函数返回数据:它不应该出现在这个例子中(因为你没有把它发送到客户端),这将意味着发生了比我们在这里看到的更多的事情。!do_something()echoprint
如果您不想在语句中运行该函数,则应执行如下操作:if
$do_somthing_bool = do_something('action-one'); //Function runs here
//This will still output echo's and prints but the output (return) of the function
// will be stored in $do_somthing_bool
if(!$do_somthing_bool) //Check if the value is false
//Do something
- 2 回答
- 0 关注
- 142 浏览
添加回答
举报
0/150
提交
取消
