Maison  >  Article  >  développement back-end  >  Tutoriel de démarrage sur la fonction d'impression PHP

Tutoriel de démarrage sur la fonction d'impression PHP

小云云
小云云original
2018-03-02 09:01:042102parcourir

关于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打印函数的种类总结

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn