php列印函數入門教程

來源:互聯網
上載者:User
關於php列印函數我們需要瞭解php列印函數種類,簡單實用以及功能區別,總結各個列印函數的實用情境以及相關最佳實務。

函數介紹

1. echo

  • echo用於輸出一個或者多個字串, 不換行

  • 如果輸出對象非字串,會嘗試將對象轉成字串, 轉化失敗則拋出異常

  • echo屬於文法結構,而非函數

  • 使用

<?phpclass Cls1 {}class Cls2 {    public function  __toString() {        return 'Cls2';    }}echo "111"; // '111'//數字類型轉成stringecho 111; // '111'//輸出bool類型true被轉成'1' , false轉成''echo true ;  // '1'echo false; // '' //輸出對象,嘗試調用對象__toString方法將對象序列化echo (new Cls1);   // error: class Cls1 could not be converted to stringecho (new Cls2);  // 'Cls2' //輸出輸出多個變數(非字串類型會被嘗試轉成字串)echo 22, "11", new Cls2;  //  '2211Cls2'

2. print

  • print 屬於文法結構,而非函數 (同echo)

  • print 一次只能接受一個字串(區分與echo)

  • 其他效果同echo

  • 使用

<?phpprint 'hello world';

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 '<pre>'; 產生更友好的資訊顯示

  • 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)*/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.