美文网首页
echo,print, printf, sprintf的区别

echo,print, printf, sprintf的区别

作者: 简简天天 | 来源:发表于2020-01-05 11:41 被阅读0次

PHP中常用的字符串输出方式是:使用echo和print两种方法来显示字符串。
如果涉及格式化输出操作,还可以试用printf和sprintf函数。

一、先说echo和print两种方法

  1. print的语法格式为:int print ( string $arg )
  2. echo的语法格式为:void echo ( string $arg1 [, string $... ] )
  • echo都是一种类似于函数的输出方式而非函数,没有返回值,且支持多参数;
  • print 实际上不是一个函数(它是一个语言结构),因此你可以不必使用圆括号来括起它的参数列表,其返回值为int类型的1,且只支持一个参数。
  • echo用法即可以用英文逗号","连接多参数,也可以用英文点号"."作为连符组成一个参数,举个栗子:
echo 'Hello ', 'world';
echo 'Hello ' . 'World';

print就不能用上面的英文逗号","连接多参数,只能用英文点号"."作为连符组成一个参数。例如上述第二句用print写法为:

echo 'Hello ' . 'World';

二、重点来了,在PHP中sprintf和printf函数都是用来格式化操作字符串的,两者的输出语法格式分别为:

  1. printf的语法格式为:int printf ( string $format [, mixed $args [, mixed $... ]] )
  2. sprintf的语法格式为:string sprintf ( string $format [, mixed $args [, mixed $... ]] )

两者的区别是:

  1. printf()函数可以直接将格式化之后的字符串输出,而sprintf()函数需要使用echo方法将格式化后的字符串输出。
  2. printf()函数的返回值为int类型,表示打印出来字符串的字符数量,而sprintf()函数的返回值为一个字符串。

举例说明:

$str='This is an example for this.';
echo $str; // This is an example for this.
echo PHP_EOL;
$number=print($str); // This is an example for this.
echo $number; // 1
echo PHP_EOL;
$format="%b, %c, %d, %s"; // 1000001, A, 65, 65
$num1=printf($format,65,65,65,65);
echo PHP_EOL;
echo $num1;  //这里输出18,对应字符串的个数
echo PHP_EOL;
echo sprintf($format,97,97,97,97);  //这里利用echo输出1100001, a, 97, 97

相关文章

网友评论

      本文标题:echo,print, printf, sprintf的区别

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