Home  >  Article  >  Backend Development  >  Getting Started Tutorial on PHP Printing Function

Getting Started Tutorial on PHP Printing Function

小云云
小云云Original
2018-03-02 09:01:042152browse

关于php打印函数我们需要了解php打印函数种类,简单实用以及功能区别,总结各个打印函数的实用场景以及相关最佳实践。

函数介绍

1. echo

  • echo用于输出一个或者多个字符串, 不换行

  • 如果输出对象非字符串,会尝试将对象转成字符串, 转化失败则抛出异常

  • echo属于语法结构,而非函数

  • 使用

<?phpclass Cls1 {}class Cls2 {
    public function  __toString() {
        return &#39;Cls2&#39;;
    }
}echo "111"; // &#39;111&#39;//数字类型转成stringecho 111; // &#39;111&#39;//输出bool类型true被转成&#39;1&#39; , false转成&#39;&#39;echo true ; 
 // &#39;1&#39;echo false; // &#39;&#39;
 //输出对象,尝试调用对象__toString方法将对象序列化echo (new Cls1);  
 // error: class Cls1 could not be converted to stringecho (new Cls2); 
 // &#39;Cls2&#39;
 //输出输出多个变量(非字符串类型会被尝试转成字符串)echo 22, "11", new Cls2; 
 //  &#39;2211Cls2&#39;

2. print

  • print 属于语法结构,而非函数 (同echo)

  • print 一次只能接受一个字符串(区分与echo)

  • 其他效果同echo

  • 使用

<?phpprint &#39;hello world&#39;;

3. print_r()

  • 用于 打印关于变量的易于理解的信息。(不包括变量类型信息)

  • 对于对象, 打印所有属性(public, protected, private)

  • 一次仅允许打印一个变量(区别于echo)

  • 使用

<?phpclass Cls1 {
    public $var1 = 111;    protected  $var2 = 222;    private $var3 = 333;    public function func() {}
}$s = "111";$n = 1;$b = false;$f = 1.1222;$o = new Cls1();$arr</span> = [<span class="hljs-string">'1'</span> =&gt; <span class="hljs-number">1</span>, <span class="hljs-string">"3"</span>, <span class="hljs-number">5</span>, <span class="hljs-variable">$o];print_r($s); // '111'print_r($n); // 1print_r($b); // ''print_r($f); // 1.1222print_r($arr);/*Array(
    [1] => 1
    [2] => 3
    [3] => 5
    [4] => Cls1 Object
        (
            [var1] => 111
            [var2:protected] => 222
            [var3:Cls1:private] => 333
        )
)
*/print_r($o);/*Cls1 Object(
    [var1] => 111
    [var2:protected] => 222
    [var3:Cls1:private] => 333
)
*/

4. var_dump

  • 一个或多个表达式的结构信息 (print_r只打印一个表达式)

  • 输出包括 类型 与值(print_r() 不显示类型)

  • 使用

<?phpclass Cls1 {
    public $var1 = 111;    protected  $var2 = 222;    private $var3 = 333;    public function func() {}
}$s = "111";$n = 1;$b = false;$f = 1.1222;$o = new Cls1();$arr</span> = [<span class="hljs-string">'1'</span> =&gt; <span class="hljs-number">1</span>, <span class="hljs-string">"3"</span>, <span class="hljs-number">5</span>, <span class="hljs-variable">$o];var_dump($s); // string(3) "111"var_dump($n); // int(1)var_dump($b); // bool(false)var_dump($f); // float(1.1222)var_dump($arr);/*array(4) {
  [1]=>
  int(1)
  [2]=>
  string(1) "3"
  [3]=>
  int(5)
  [4]=>
  object(Cls1)#1 (3) {
    ["var1"]=>
    int(111)
    ["var2":protected]=>
    int(222)
    ["var3":"Cls1":private]=>
    int(333)
  }
}

*/var_dump($o);/*
object(Cls1)#1 (3) {
  ["var1"]=>
  int(111)
  ["var2":protected]=>
  int(222)
  ["var3":"Cls1":private]=>
  int(333)
}

*/var_dump($s</span>, <span class="hljs-variable">$n, $b</span>, <span class="hljs-variable">$f);/*string(3) "111"int(1)bool(false)float(1.1222)
*/

5. 其他

  • printf(): 用于格式化输出的场景

  • sprintf()  用于格式化字符串场景, 较printf()区别在于,前者直接输出到标准输出, 后者字符串以变量形式返回

  • 使用

<?php$n = 11;$s = "22";$f = "22";printf("%d%s%f", $n</span>, <span class="hljs-variable">$s, $f); // 112222.000000$s2</span> = <span class="hljs-keyword">sprintf</span>(<span class="hljs-string">"<span class="hljs-variable">%d</span><span class="hljs-variable">%s</span><span class="hljs-variable">%f</span>"</span>, <span class="hljs-variable">$n, $s</span>, <span class="hljs-variable">$f);
echo $s2; // 112222.000000

最佳实践 (服务调试)

  1. 不使用print, 可用echo 替代

  2. 由于echo只能输出简单的字符串,需要了解变量详细信息不用echo, 建议使用print_r(), var_dump() (个人更偏爱var_dump)

  3. 调试信息输出到浏览器, 尝试添加 echo '

    ';  产生更友好的信息显示

  • 41

  • 42

  • 43

  • 44

  • 45

  • 46

4. var_dump

  • 一个或多个表达式的结构信息 (print_r只打印一个表达式)

  • 输出包括 类型 与值(print_r() 不显示类型)

  • 使用

<?phpclass Cls1 {
    public $var1 = 111;    protected  $var2 = 222;    private $var3 = 333;    public function func() {}
}$s = "111";$n = 1;$b = false;$f = 1.1222;$o = new Cls1();$arr</span> = [<span class="hljs-string">'1'</span> =&gt; <span class="hljs-number">1</span>, <span class="hljs-string">"3"</span>, <span class="hljs-number">5</span>, <span class="hljs-variable">$o];var_dump($s); // string(3) "111"var_dump($n); // int(1)var_dump($b); // bool(false)var_dump($f); // float(1.1222)var_dump($arr);/*array(4) {
  [1]=>
  int(1)
  [2]=>
  string(1) "3"
  [3]=>
  int(5)
  [4]=>
  object(Cls1)#1 (3) {
    ["var1"]=>
    int(111)
    ["var2":protected]=>
    int(222)
    ["var3":"Cls1":private]=>
    int(333)
  }
}

*/var_dump($o);/*
object(Cls1)#1 (3) {
  ["var1"]=>
  int(111)
  ["var2":protected]=>
  int(222)
  ["var3":"Cls1":private]=>
  int(333)
}

*/var_dump($s</span>, <span class="hljs-variable">$n, $b</span>, <span class="hljs-variable">$f);/*string(3) "111"int(1)bool(false)float(1.1222)
*/

相关推荐:

PHP 打印函数之 print print_r

PHP打印函数的种类总结_PHP教程

PHP打印函数的种类总结

The above is the detailed content of Getting Started Tutorial on PHP Printing Function. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn