乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      PHP中的輸出:echo、print、printf、sprintf、print_r和var_dump

       硬核項(xiàng)目經(jīng)理 2021-05-31

      大家在面試中,經(jīng)常會(huì)被問(wèn)到的問(wèn)題:

      請(qǐng)簡(jiǎn)要說(shuō)明PHP的打印方式都有哪些?

      或者直接點(diǎn)問(wèn):

      請(qǐng)說(shuō)明echo、print、print_r的區(qū)別

      看著很簡(jiǎn)單,一般會(huì)出現(xiàn)在初中級(jí)的筆試題中。但是要真正說(shuō)明白這些語(yǔ)言結(jié)構(gòu)或者函數(shù)也不是那么簡(jiǎn)單的事情。今天我們就來(lái)好好看看這些打印輸出相關(guān)的內(nèi)容。

      echo

      最基礎(chǔ)的輸出語(yǔ)句,不是函數(shù)是語(yǔ)言結(jié)構(gòu),不需要括號(hào)??梢允褂脜?shù)列表,用逗號(hào)分隔。但如果加了括號(hào)就不能用逗號(hào)分隔著輸出了。沒(méi)有返回值。

      echo 'fullstackpm'; // 正常輸出:fullstackpm
      echo 'fullstackpm', ' is ', 'Good!'; // 正常輸出:fullstackpm is Good!
      echo ('fullstackpm'); // 正常輸出:fullstackpm
      echo ('fullstackpm', ' is ', 'Good!'); // 報(bào)錯(cuò)了

      print

      基本和echo一樣,但是不支持參數(shù)列表,有返回值。返回值永遠(yuǎn)是1。

      因?yàn)橛蟹祷刂担韵鄬?duì)來(lái)說(shuō)效率不如echo

      print 'fullstackpm'; // 正常輸出:fullstackpm
      print 'fullstackpm', ' is ', 'Good!'; // 錯(cuò)誤
      $r = print ('fullstackpm'); // 正常輸出:fullstackpm
      print $r; // 輸出1

      printf和sprintf

      兩個(gè)很高大上的函數(shù),可以格式化輸出字符串。用%標(biāo)明占位符,后面的參數(shù)對(duì)應(yīng)進(jìn)行占位符的替換。printf和sprintf的區(qū)別就是前者直接進(jìn)行了輸出,而后者是將字符串進(jìn)行了函數(shù)返回。請(qǐng)看實(shí)例。

      $str = 'My name is %s, I\'m %d years old.';
      printf($str, 'fullstackpm', 1002); // 直接輸出:My name is fullstackpm, I'm 1002 years old.

      $s = sprintf($str, 'WoW', 12); // 這里不會(huì)輸出
      print $s; // 輸出:My name is WoW, I'm 12 years old.

      你最少要記住的,%s代表字符串,%d代表數(shù)字,%f是浮點(diǎn)數(shù),%%是輸出%本身,其他還有許多類型可以查看相關(guān)文檔。另外還有類似的幾個(gè):

      • vprintf,他的第二個(gè)參數(shù)是一個(gè)數(shù)組,不是可變長(zhǎng)度的參數(shù)。

      • sscanf,對(duì)于一些特殊字符處理方式不同。

      • fscanf,從文檔中讀取并進(jìn)行格式化。

      print_r

      非常常用的一個(gè)函數(shù),可以格式化的輸出數(shù)組或?qū)ο?。注意第二個(gè)參數(shù)設(shè)置為true,可以不直接輸出而是進(jìn)行函數(shù)返回。

      $str = [
      "a",
      1 => "b",
      "3" => "c",
      "show"=>'d'
      ];

      print_r($str)
      // 輸出
      /**
      Array
      (
      [0] => a
      [1] => b
      [3] => c
      [show] => d
      )
      */


      $s = print_r($str, true); // 此處不會(huì)輸出
      echo $s;
      // 輸出
      // 注意,輸出流不在ob_start()中,測(cè)試本段請(qǐng)不要有其他任何輸出
      /**
      Array
      (
      [0] => a
      [1] => b
      [3] => c
      [show] => d
      )
      */

      var_dump和var_exports

      var_dump也是非常常用的一個(gè)函數(shù),用來(lái)顯示結(jié)構(gòu)信息,包括類型與值,數(shù)組對(duì)象都會(huì)展開(kāi),用縮進(jìn)表示層次。var_exports與之不同的地方在于var_exports返回的內(nèi)容是正常的PHP代碼,可以直接使用,并且有和print_r類似的第二個(gè)return參數(shù),作用也類似。

      $str = [
      "a",
      1 => "b",
      "3" => "c",
      "show"=>'d'
      ];

      var_dump($str);
      // 輸出
      /**
      array(4) {
      [0] =>
      string(1) "a"
      [1] =>
      string(1) "b"
      [3] =>
      string(1) "c"
      'show' =>
      string(1) "d"
      }
      */


      var_export($str);
      // 輸出
      /**
      array (
      0 => 'a',
      1 => 'b',
      3 => 'c',
      'show' => 'd',
      )
      */

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多