PHP学习之输出字符串(echo,print,printf,print_r和var_dump)

  下面一一进行介绍。

  1. echo

  echo 是PHP的一个关键字,它没有返回值。在写法上,它可以省略小括号。如下代码:

  

复制代码 代码如下:

  echo 'Test String';

  echo('Test String');

  2. print

  print 也是PHP的一个关键字,它有返回值,一般返回true,返回false的情况应该没有。在写法上,它和echo一样,可以省略小括号。如下代码:

  

复制代码 代码如下:

  print 'Test String';

  print('Test String');

  3. printf

  printf可以像C语言的printf一样,格式化输出一个字符串。它的格式和C语言差不多,都是以%开头。其说明符定义如下。

  b 参数为整数,显示其二进制

  c 参数为整数,显示对应ASCII字符

  d 参数为整数,显示其十进制

  f 参数为双精度,显示为浮点数

  e 参数为双精度,显示为科学计数型

  g 参数为双精度,显示为浮点数或科学计数型

  o 参数为整数,显示其八进制

  s 参数为字符串,显示为字符串

  u 参数为无符号整数,显示其十进制

  x/X 参数为整数,显示其十六进制(分别为大小写显示)

  % 输出%要说明的是:

  f,e默认小数点后六位,g在超过六位(加小数点)时,会四舍五入,如果四舍五入之后的值小于1000000会直接输出,大于的1000000的话会显示成科学计数型。f在值大于1.2e23输出的结果是不对的。

  以上除%以外,其它的都可以指定输出总位数(小数点、E都算一位),并可以指定0或空格为补位符,还可以指定补位在左还是在右。

  f,e可以指定小数点后位数。

  如 %5d 表示输出总位数为5,不足左补空格; %05d 表示输出总位数为5,不足左补0; %05.1f 表示输出总位数为5,不足左补0,小数点后1位; %-05.1f 表示输出总位数为5,不足右补0,小数点后1位;

  示例代码:

  

复制代码 代码如下:

  printf("%7.2f", 1.2); // " 1.20"

  printf("%-07.2f", 1.2); // "1.20000"

  4. sprintf

  sprintf和格式转换和printf一样,两者区别在于printf直接输出,而sprintf返回一个格式化后的字符串。

  5. print_r和var_dump

  print_r和var_dump都能输出数组和对象,但print_r对布尔型的输出不太明显;var_dump输出比较详细,一般调试时用得多。

  如下代码:

  

复制代码 代码如下:

  $v = new test();

  print_r($v);

  var_dump($v);

  class test {

  public $num = 1;

  public $str = "222";

  public $bln = true;

  结果为:

  

复制代码 代码如下:

  test Object

  (

  [num] => 1

  [str] => 222

  [bool] => 1

  )

  object(test)#1 (3) {

  ["num"]=>

  int(1)

  ["str"]=>

  string(3) "222"

  ["bool"]=>

  bool(true)

  }

  参考资料:

  PHP程序设计,2003,第四章 字符串,输出字符串