Home » 其他 » PHP输出字符串(echo,print,printf,print_r和var_dump)

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

近来在做php开发的时候,经常会需要输出字符串,但是总会遇到类似某些内容可以用print_r正确输出但是不能用echo 输出的情况。于是结合网上的一些资料对php输出字符串的几种方式做了一个对比。

1.echo

PHP的一个关键字,它没有返回值,可以一次输出多个字符串,多个值之间用逗号分隔。echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用。在写法上,它可以省略小括号。

<span style="color: #606060" id="lnum1">   1:</span> <span style="color: #0000ff">echo</span> <span style="color: #006080">&quot;Hello&quot;</span>, <span style="color: #006080">&quot;World&quot;</span>; 

输出结果:

<span style="color: #606060" id="lnum1">   1:</span> HelloWorld

 

2.print

同样是PHP的一个关键字,它有返回值,如果字符串成功显示则返回true,否则返回false。在写法上,同样可以省略小括号。

<span style="color: #606060" id="lnum1">   1:</span> <span style="color: #0000ff">if</span> ((<span style="color: #0000ff">print</span> <span style="color: #006080">&quot;foo&lt;/br&gt;&quot;</span>) &amp;&amp; (<span style="color: #0000ff">print</span> <span style="color: #006080">&quot;bar&lt;/br&gt;&quot;</span>)) {

<span style="color: #606060" id="lnum2">   2:</span>     <span style="color: #0000ff">print</span> <span style="color: #006080">'Test String'</span>; 

<span style="color: #606060" id="lnum3">   3:</span> }

输出结果:

<span style="color: #606060" id="lnum1">   1:</span> foo

<span style="color: #606060" id="lnum2">   2:</span> bar

<span style="color: #606060" id="lnum3">   3:</span> Test String

3.printf

该用法源于C语言中的printf(),用于输出格式化的字符串。

语法: printf(format,arg1,arg2,arg++)

format   规定字符串以及如何格式化其中的变量;

arg1, arg2, ++ 等参数将插入到主字符串中的百分号 (%) 符号处。该函数是逐步执行的。在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。

<span style="color: #606060" id="lnum1">   1:</span> $str = <span style="color: #006080">&quot;Hello&quot;</span>;   

<span style="color: #606060" id="lnum2">   2:</span> $number = 123;   

<span style="color: #606060" id="lnum3">   3:</span> printf(<span style="color: #006080">&quot;%s world. Day number %u&quot;</span>,$str,$number);

输出结果:

<span style="color: #606060" id="lnum1">   1:</span> Hello world. Day number 123

如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入 % 符号之后,由数字和 "\$" 组成。

<span style="color: #606060" id="lnum1">   1:</span> $number = 123;

<span style="color: #606060" id="lnum2">   2:</span> printf(<span style="color: #006080">&quot;With 2 decimals: %1\$.2f&lt;br /&gt;With no decimals: %1\$u&quot;</span>,$number);

输出结果:

<span style="color: #606060" id="lnum1">   1:</span> With 2 decimals: 123.00

<span style="color: #606060" id="lnum2">   2:</span> With no decimals: 123

4.print_r

打印关于变量的易于理解的信息。如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。

需要注意的是,print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。

<span style="color: #606060" id="lnum1">   1:</span> $a = <span style="color: #0000ff">array</span>(<span style="color: #006080">'name'</span> =&gt; <span style="color: #006080">'Fred'</span>, <span style="color: #006080">'age'</span> =&gt; <span style="color: #006080">'15'</span>, <span style="color: #006080">'wife'</span> =&gt; <span style="color: #006080">'Wilma'</span>);

<span style="color: #606060" id="lnum2">   2:</span> print_r($a);

输出结果:

<span style="color: #606060" id="lnum1">   1:</span> Array ( [name] =&gt; Fred [age] =&gt; 15 [wife] =&gt; Wilma )

5.var_dump

此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

<span style="color: #606060" id="lnum1">   1:</span> $b = 3.1;

<span style="color: #606060" id="lnum2">   2:</span> $c = <span style="color: #0000ff">true</span>;

<span style="color: #606060" id="lnum3">   3:</span> var_dump($b, $c);

输出结果:

<span style="color: #606060" id="lnum1">   1:</span> <span style="color: #0000ff">float</span>(3.1)

<span style="color: #606060" id="lnum2">   2:</span> <span style="color: #0000ff">bool</span>(<span style="color: #0000ff">true</span>)

Continue reading...
分享