if(file_put_contents($filename,$data)!==false)

if(file_put_contents($filename,$data)!==false)

前面课程有说if 括号里面只是进行逻辑判断,file_put_contents($filename,$data)这个放在if的括号里面,为什么会先执行这个函数,再做判断?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

5回答
好帮手慕小尤 2020-04-27 18:55:34

同学你好,1. 刚是老师理解错误,给您的学习带来不便,深感抱歉!

2. 小括号中的内容是会运行的,但无法在小括号中进行输出,同学可以在小括号中定义一个变量,然后使用输出语句输出变量。代码如下所示:

http://img1.sycdn.imooc.com//climg/5ea6b91b093b3f1f07520327.jpg

<?php
function Add($a,$b) {
    if(($sum =($a+$b))>0){ // ($sum =($a+$b)) 1+2 =3
        echo $sum;  // 输出3
        return true;
    }else{ 
        return false;
    }
}

echo Add(1,2);

注:1. 在if条件中赋值时需要小括号包裹着的。如果不包裹如:$sum =($a+$b)>0,会先运算$a+$b,然后运算3>0 最后进行赋值。导致变量$sum为true也就是1

2. 没有输出语句是不会输出任何的数据。

如果解决了您的问题,请采纳,祝学习愉快!

guly 2020-04-27 09:42:22

你好,你贴出的代码有误,return false后应加分号,



http://img1.sycdn.imooc.com//climg/5ea638410967410605880683.jpg

输出结果为1,如果解决您的问题请采纳,祝学习愉快!

  • 提问者 穆菜鸟 #1
    你还是没回答我要问的问题,是不明白我问的内容吗?
    2020-04-27 14:59:44
  • 提问者 穆菜鸟 #2
    这个分号应该是你忘记写了,我贴过来的时候是有的。我这边问题关键是为什么if 小括号里面的函数在课程里面的那个会执行并且输出,而我写的在小括号里面的运算为什么不行?if小括号里面的运算到底会不会输出??两个问题请分别回答,谢谢!
    2020-04-27 15:09:09
好帮手慕小尤 2020-04-26 16:35:39

同学你好,在if条件中的file_put_contents()函数(把一个字符串写入文件中),是会执行的,也就是说当运行到if(file_put_contents($filename,$data)!==false)就会进行写入,只要file_put_contents($filename,$data)不返回false,则代表写入成功。

如果解决了您的问题,请采纳,祝学习愉快!

  • 提问者 穆菜鸟 #1
    那为什么你那个函数会执行,我另外写一个类似于下面这种就只是进行判断时候执行,而输出不执行呢? function Add($a,$b) { if(($a+$b)>0){ return true; }else { return false;} } echo Add(1,2);
    2020-04-26 20:45:50
好帮手慕小尤 2020-04-26 09:40:25

同学你好,在括号中的运算表达式会进行运算,但并不是被输出。在同学反馈的代码中。当参数a加参数b大于0时,会返回true,否则返回false。而在调用时,会输出返回的数据,也就是true或false

如果解决了您的问题,请采纳,祝学习愉快!

  • 提问者 穆菜鸟 #1
    那这个题目中的自定义函数是怎么实现的写入?if(file_put_contents($filename,$data)!==false),最后这个写入不也是在if里面吗?按照上条逻辑,函数结果应该是返会true 或者false 呀。
    2020-04-26 16:11:14
guly 2020-04-25 10:27:53

你好,在判断 

file_put_contents($filename,$data)!==false时 file_put_contents($filename,$data)是一个整体,先执行函数后在进行比较,则相当于执行函数的优先级大于 !==运算符的优先级,如果解决了您的问题请采纳,祝学习愉快!


  • 提问者 穆菜鸟 #1
    我想问的是if 小括号里面的运算也最后会被程序输出是吗?跟花括号里面的效果一样? function Add($a,$b) { if(($a+$b)>0){ return true; }else { return false;} } echo Add(1,2); 类似于这种,为啥结果不是输出3呢?
    2020-04-26 04:56:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师