美文网首页
PHP中echo输出中存在括号"()"的处理

PHP中echo输出中存在括号"()"的处理

作者: 老衲灬 | 来源:发表于2018-08-15 16:10 被阅读117次

    echo的官方解释如下:
    echo 不是一个函数(它是一个语言结构), 因此你不一定要使用小括号来指明参数,单引号,双引号都可以。 echo (不像其他语言构造)不表现得像一个函数, 所以不能总是使用一个函数的上下文。 另外,如果你想给echo 传递多个参数, 那么就不能使用小括号。

    个人总结:
    关于echo中存在括号,且存在多个字符串的相关问题,测试代码如下:

    //1、全部用括号包起来的情况,其中只能存在一个参数,才会被输出
    echo ('b','#',"aabbcc");        //报错 "语法错误,不被期望的','"(相当于传了多个参数)
    echo ('b'.'#'."aabbcc");        //b#aabbcc
    echo ((('abc')));               //abc
    
    // 2、无","或"."连接,但存在括号的情况会被解析为函数的调用
    // 注意:如果存在连续三个及三个以上括号的情况,则会报错
    echo "str_replace"('b','#',"aabbcc");   //aa##cc
    echo 'strlen'('abc');                   //3
    echo ('strlen')('abc');                 //3
    echo ('aaa')('bbb');                    //报错:aaa函数未定义
    echo ('strlen')('abc')('ss');           //报错 "函数名不是一个字符串"
    
    //3、存在","或"."连接的情况,即单纯的字符串顺序输出或连接
    echo 'strlen',("aaa");  //strlenaaa
    echo 'strlen'.("aaa");  //strlenaaa
    echo ('aaa').('bbb');   //aaabbb
    

    相关文章

      网友评论

          本文标题:PHP中echo输出中存在括号"()"的处理

          本文链接:https://www.haomeiwen.com/subject/qijwbftx.html