Menu
Woocommerce Menu

php echo, print, print_r, sprintf, var_dump, var_expor的使用区别

0 Comment

1.echo和print的区别

/*******echo********/ echo— 输出一个或多个字符串
描述 echo ( string arg1 [, string …] )
echo()实际上不是一个函数(它是一个语言结构),所以您不需要使用括号。echo()的(不同于其他一些语言构造)并不像一个功能,所以它不能总是在函数中使用。此外,如果你想传递多个参数的echo(),参数必须不被括在括号内。
echo()是命令,不能返回值。echo后面可以跟很多个参数,之间用分号隔开,如:
echo $myvar1;
echo 1,2,$myvar,”bold”;

PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的。echo输出后没有返回值,但print有返回值,当其执行失败时返回flase。因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r的值将为1。

/*******print********/ print— 输出一个或多个字符串
描述 int print ( string arg )
print()是实际上没有一个真正的函数(它是一个语言结构),所以你并不需要使用它的参数列表的括号。
 可以返回一个值,只能有一个参数

$r = print “Hello World”;

/*******print_r()********/  print_r
(PHP 4, PHP 5)
print_r –  打印关于变量的易于理解的信息。
描述 bool print_r ( mixed expression [, bool return] )
注: 参数 return 是在 PHP 4.3.0 的时候加上的
print_r() 显示关于一个变量的易于理解的信息。如果给出的是
string、integer 或 float,将打印变量值本身。如果给出的是
array,将会按照一定格式显示键和元素。object 与数组类似。
记住,print_r() 将把数组的指针移到最后边。使用 reset()
可让指针回到开始处。
<pre>
<?php
    $a = array (‘a’ => ‘apple’, ‘b’ => ‘banana’, ‘c’ => array
(‘x’,’y’,’z’));
    print_r ($a);
?>
</pre>
上边的代码将输出: <pre>
Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
</pre>
如果想捕捉 print_r() 的输出,可使用 return 参数。若此参数设为
TRUE,print_r() 将不打印结果(此为默认动作),而是返回其输出。
例子 1. return 参数示例
<?php
    $b = array (‘m’ => ‘monkey’, ‘foo’ => ‘bar’, ‘x’ => array
(‘x’, ‘y’, ‘z’));
    $results = print_r ($b, true); //$results 包含了 print_r
的输出结果
?>

这意味着print可用在一些复杂的表达式中,而echo则不行。但是,因为echo语句不要求返回任何数值,所已在代码中echo语句的运行效率要略微快于print语句。

注: 如果想在 PHP 4.3.0 之前的版本中捕捉 print_r()
的输出,可使用输出控制函数。
注: 在 PHP 4.0.4 之前的版本中,如果给出的 array 或 object
包含了直接或间接指向自身的引用,print_r()
将永远继续下去。print_r($GLOBALS) 就是一个例子,因为 $GLOBALS
自身即是全局变量,其包含了指向自身的引用。
 /*******sprintf()********/

echo 没有返回值;print 有返回值,print 的返回值总是1。

/*******var_dump()********/
var_dump
(PHP 3 >= 3.0.5, PHP 4, PHP 5)
var_dump — 打印变量的相关信息
描述 void var_dump ( mixed expression [, mixed expression [, …]] )
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
提示:
为了防止程序直接将结果输出到浏览器,可以使用输出控制函数来捕获此函数的输出,并把它们保存到一个例如
string 类型的变量中。

表达式
print 可以用于复杂的表达式,而 echo 不可以。比如 print
可以用于如下示例:

/*******var_export()********/ var_export
(PHP 4 >= 4.2.0, PHP 5)
var_export — 输出或返回一个变量的字符串表示
描述 mixed var_export ( mixed expression [, bool return] )
此函数返回关于传递给该函数的变量的结构信息,它和 var_dump()
类似,不同的是其返回的表示是合法的 PHP 代码。
var_export必须返回合法的php代码,
也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。
而这个变量就会取得和被var_export一样的类型的值
 但是, 当变量类型为resource的时候, 是无法简单copy复制的,所以,
当var_export的变量是resource类型时, var_export会返回NULL

 代码如下

复制代码 代码如下:

<html><body><?php$a=true;$a
? print “true”:print “false”;?></body></html>

$res = fopen(‘status.html’, ‘r’);
var_dump($res); //resource(2) of type (stream)
var_export($res); //NULL

参数
echo 可以有多个参数,而 print 只能有一个参数。

您可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。

echo
如果有多个参数,应用逗号分隔,每个参数没有必要加小括号,正确写法如下:

复制代码 代码如下:

 代码如下

<pre>
<?php
$a = array (1, 2, array (“a”, “b”, “c”));
var_export ($a);
/* 输出:
array (
  0 => 1,
  1 => 2,
  2 =>
  array (
    0 => ‘a’,
    1 => ‘b’,
    2 => ‘c’,
  ),
)
*/
$b = 3.1;
$v = var_export($b, TRUE);
echo $v;
/* 输出:
3.1
*/
?>
</pre>

echo “good “,”for “,”you”;

您可能感兴趣的文章:

  • php
    sprintf()函数让你的sql操作更安全
  • PHP sprintf()函数用例解析
  • PHP sprintf()
    函数的应用(定义和用法)
  • php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
  • PHP
    echo,print,printf,sprintf函数之间的区别与用法详解
  • php的sprintf函数的用法
    控制浮点数格式
  • php中sprintf与printf函数用法区别解析
  • PHP之sprintf函数用法详解
  • 深入浅析php中sprintf与printf函数的用法及区别

注意,如果 echo
有多个参数,只用一个小括号将所有参数围起来,是错误的写法。下面的写法是错误的:

标签:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图