PHP echo()输出函数的用法(附带实例)
PHP 输出函数包括 echo() 函数与 print() 函数,以及格式化输出 printf() 函数和 sprintf() 函数,本节讲解 echo() 函数的用法。
echo() 函数可以一次性输出多个字符串、HTML 标记或变量,可以使用圆括号,也可以不使用圆括号,在实际应用中一般不使用圆括号。echo() 函数更像一条语句,无返回值。
下面罗列了字符串的 3 种输出方法:
经过测试,在 echo() 函数中,用逗号来连接字符串的方式要比直接使用圆点连接字符串更快。
【实例 1】用圆点输出 echo 变量。
【实例 2】交换顺序用圆点输出 echo 变量。
【实例 3】用逗号输出 echo 变量。
【实例 4】交换顺序用逗号输出 echo 变量。
在【实例 1】中,在代码“echo '1+5' . 1+5;”中加上括号 ["echo('1+5' . 1)+5;"],得到的结果是一样的,这证明 PHP 是先连接字符串再按照从左向右的顺序进行加法计算。既然是先连接字符串,则应该是"1+51",再为这个字符串增加 5,那为什么会输出 6 呢?
上述内容与 PHP 中的字符串变成数字的机制相关,来看下述例子:
回到上文中的“1+5”,既然这个字符串是“1+5”,所以强制进行类型转换后应为 1,在此基础上加上 5,结果当然为 6。
为了证明上文中的猜想,以下述例子来进行验证:
如上文所述,echo 会先对每个参数进行计算,然后进行字符串连接,最后输出,所以使用逗号不会出现上述问题。
echo() 函数可以一次性输出多个字符串、HTML 标记或变量,可以使用圆括号,也可以不使用圆括号,在实际应用中一般不使用圆括号。echo() 函数更像一条语句,无返回值。
下面罗列了字符串的 3 种输出方法:
//方法1:使用逗号来输出 <?php echo "今天天气很好","我们出去玩吧"; ?> //方法2:使用圆点来输出 <?php echo "今天天气很好"."我们出去玩吧"; ?> //方法3:添加括号来输出 <?php echo ("今天天气很好"."我们出去玩吧"); ?>需要注意的是,在方法 3 中,不能将括号中的圆点改为逗号,否则运行结果会出错。
经过测试,在 echo() 函数中,用逗号来连接字符串的方式要比直接使用圆点连接字符串更快。
【实例 1】用圆点输出 echo 变量。
<?php echo '1+5='. 1+5; ?>上述输出结果是“6”,而不是“1+5=6”。
【实例 2】交换顺序用圆点输出 echo 变量。
<?php echo '1+5='. 5+1; ?>运行结果为:
2
输出结果为“2”,这一结果十分奇怪,在交换 5 和 1 的位置时,输出结果就变为“2”了,为什么会这样呢?难道在 PHP 中加法没有交换律?当然不是。我们先不去思考为什么,而是将上述圆点换成逗号,再进行尝试。【实例 3】用逗号输出 echo 变量。
<?php echo '1+5=', 5+1; ?>运行结果为:
1+5=6
【实例 4】交换顺序用逗号输出 echo 变量。
<?php echo '1+5=', 1+5; ?>运行结果为:
1+5=6
可以看出,只有使用逗号才可以得到意料之中的结果,那原因是什么呢?在【实例 1】中,在代码“echo '1+5' . 1+5;”中加上括号 ["echo('1+5' . 1)+5;"],得到的结果是一样的,这证明 PHP 是先连接字符串再按照从左向右的顺序进行加法计算。既然是先连接字符串,则应该是"1+51",再为这个字符串增加 5,那为什么会输出 6 呢?
上述内容与 PHP 中的字符串变成数字的机制相关,来看下述例子:
echo (int)'abc1'; // 输出0 echo (int)'1abc'; // 输出1 echo (int)'2abc'; // 输出2 echo (int)'22abc'; // 输出22从上述例子可以看出,如果将一个字符串强制转换成一个数字,PHP 会搜索该字符串的开头,如果开头是数字则进行转换,如果不是数字则直接返回 0。
回到上文中的“1+5”,既然这个字符串是“1+5”,所以强制进行类型转换后应为 1,在此基础上加上 5,结果当然为 6。
为了证明上文中的猜想,以下述例子来进行验证:
echo '5+1=' . 1+5; // 输出10 echo '5+1=' . 5+1; // 输出6 echo '1+5=' . 1+5; // 输出6 echo '1+5=' . 5+1; // 输出2结果证明,上文中的设想是正确的。那么为什么使用逗号就不会出现上述问题呢?使用逗号代表多参数,换句话说,使用逗号进行分隔,相当于 N 个参数,即将 echo 看作函数使用。
如上文所述,echo 会先对每个参数进行计算,然后进行字符串连接,最后输出,所以使用逗号不会出现上述问题。