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 开发而生的魅力所在。

posted on 2014-01-03 18:21  想要做個機器人  阅读(1943)  评论(0编辑  收藏  举报