zoukankan      html  css  js  c++  java
  • PHP 逗号运算符 的作用

      在C语言中,逗号运算符的定义是:逗号运算符用于将若干表达式(两个或两个以上)连接起来,连接起来的表达式被称为逗号表达式,逗号运算符在所有运算符中优先级最低,并且在逗号运算符左边的子表达式所有副作用都结束(运算结束)后,才进行其右边子表达式的运算,所以,将逗号表达式最右边的子表达式的值作为整个逗号表达式的值。

      进入正题,写此随笔的缘由:

      ①:在翻看PHP手册的过程中,看到了一段示例代码(注意标红加粗的部分):

        <?php
          echo '<a href="ftp://user:'rawurlencode('foo @+%/'),
             
    '@ftp.example.com/x.txt">';
        ?>

      问题:逗号运算符的作用是?

      Anybody Know It?

      给我的第一感觉,这个逗号运算符是用作续行的,类似于C语言中的" ",当看到第二段示例的时候,发现情况不是这样的:

        <?php
          echo '<a href="http://example.com/department_list_script/',
          
    rawurlencode('sales and marketing/Miami'), '">';
        ?>

      那么在PHP语言中,逗号运算符的作用是什么呢?

      答:在PHP中,逗号用于多参数分隔。(是不是很无聊)

      ②:结合另外一个例子:

        echo '1+5=' . 1+5; 

      这段代码的输出结果是?"1+5=6" ?别问我,试试看。

      为什么没有得到预期的结果呢?

      PHP中,字符串运算符 . 与算术运算符 + - 的优先级相同,OK,程序可以直接按照从左至右的流程走,先执行字符串连接,再执行加法运算。

        即   1) echo '1+5=1' + 5;

          2) echo 1 + 5;// 字符串经强制类型转换后,变成 1 ,没问题吧~

          3) echo 6;

      那么,下面这个表达式的值应该是多少呢?

        echo '1+5=' , 1+5; 

      Yeah! 完全符合预期!1+5=6

      由于在PHP中,逗号用于多参数分隔,这相当于为 echo 传递了两个参数,echo 会先计算每个参数,再使用运算后的结果进行连接、输出。

      从缘由②例子一分解步骤中强制转换的结果,以及例子二中逗号运算符的使用可以看出,PHP 与 C 相比,“纯粹性”差了些,但这也许正是 PHP 这门语言为 Web 开发而生的魅力所在。

  • 相关阅读:
    各种模板
    HNOI2019总结
    WC2019游记
    THUSC2017 Day1题解
    NOIP2018联赛总结
    LOJ2557. 「CTSC2018」组合数问题
    NOI2018游记
    bzoj4671: 异或图
    sg函数小结
    [NOI2011]Noi嘉年华
  • 原文地址:https://www.cnblogs.com/MyRobotDream/p/3504156.html
Copyright © 2011-2022 走看看