Php 在if语句条件下使用语句的后果
这可能是一个显而易见的问题,但我还没有找到答案 如果我检查一个函数是否工作,我会将它置于if()条件下,如下所示:Php 在if语句条件下使用语句的后果,php,if-statement,Php,If Statement,这可能是一个显而易见的问题,但我还没有找到答案 如果我检查一个函数是否工作,我会将它置于if()条件下,如下所示: 如果(!fopen($filename,“w”))打印“未找到文件” 但是它能打开文件吗?它会抹掉它吗?(模式“w”会导致这种情况。) 谢谢 是的,if语句中的函数将按原样执行。w模式打开文件进行写入,但不会擦除它。然而,如果你问函数是否真的被调用了,它是。但如果返回“未找到文件”,则不会返回true@RoyalBg您可以用这种方式打开不存在的文件,因此错误消息将是错误的。@Mar
如果(!fopen($filename,“w”))打印“未找到文件”代码>
但是它能打开文件吗?它会抹掉它吗?(模式“w”会导致这种情况。)
谢谢 是的,if
语句中的函数将按原样执行。w
模式打开文件进行写入,但不会擦除它。然而,如果你问函数是否真的被调用了,它是。但如果返回“未找到文件”,则不会返回true@RoyalBg您可以用这种方式打开不存在的文件,因此错误消息将是错误的。@MarcelKorpel当然,这就是为什么我说函数由于某种原因返回false,而不是真的找不到文件:)错误消息应该更改,或者要检查是否未找到,请使用文件\u exists()
请不要进入不必要的详细信息。我编了一个代码,很抱歉不正确。我只是想知道这种情况下的函数是否有其正常后果。您还可以使用短路求值:fopen($filename,'w')| | echo“出了问题。”
。在Marc的答案上展开,这意味着如果(fopen($filename,“w”)
的计算结果为TRUE
,则fopen
已成功执行。@sébastien更准确地说:(!fopen($filename,“w”)
如果fopen
成功执行,则将计算结果为FALSE
。抱歉!你说得对,我更正了我的评论。该死的复制/粘贴!谢谢:)