登陆

一个面试题,没搜到原因,求解答

if (true) {    echo 'true'."\n";} else false : {    echo 'false'."\n";}

输出了true fasle

# PHP
蜉蝣蜉蝣244 天前403 次浏览

全部回复(2)我要回复

  • LuLu

    LuLu2020-10-20 20:56:58

    false : {    echo 'false'."\n";}换成label : {    echo 'false'."\n";}或者abc : {    echo 'false'."\n";}什么的都是同样的结果

    标识符+冒号+代码块   是goto语句的一部分,没有用到goto,你就当它顺序执行好了

    这样能理解?

    回复
    0
  • PocketKnife

    PocketKnife2020-09-25 19:07:51

    if (true) {    

    echo 'true'."\n";

    } else false : { //这里是打错了吧,应该是分号吧,怎么是冒号   

    echo 'false'."\n";

    }

    if..else...判断语句,为true, 所以会输出第一个true,else则不会被执行

    最后面的false是单独的语句块,是一定会输出的,所以最后的结果就是

    true

    false

    回复
    0
  • 取消回复发送