PHPでの出力:echo、print、printf、sprintf、print_rとvar_dump

3101 ワード

面接でよく聞かれる質問:
PHPの印刷方法を簡単に説明してください.
あるいは直接質問します.
echo、print、print_について説明してくださいrの違い
見ていると簡単で、普通は中級の筆記試験問題に出ます.しかし、これらの言語構造や関数を本当に理解するのはそんなに簡単なことではありません.今日は、これらの印刷出力に関する内容をよく見てみましょう.
echo
最も基礎的な出力文は、関数ではなく言語構造であり、括弧は必要ありません.パラメータリストを使用してカンマで区切ることができます.ただし、カッコを付けるとカンマで出力を区切ることはできません.戻り値がありません.
echo 'fullstackpm'; //     :fullstackpm
echo 'fullstackpm', ' is ', 'Good!'; //     :fullstackpm is Good!
echo ('fullstackpm'); //     :fullstackpm
echo ('fullstackpm', ' is ', 'Good!'); //    

print
基本的にechoと同じですが、パラメータリストはサポートされておらず、戻り値があります.戻り値は常に1です.
戻り値があるので、相対的に効率はechoに及ばない
print 'fullstackpm'; //     :fullstackpm
print 'fullstackpm', ' is ', 'Good!'; //   
$r = print ('fullstackpm'); //     :fullstackpm
print $r; //   1

printfとsprintf
2つの大きな関数で、出力文字列をフォーマットできます.%でプレースホルダを表示し、後のパラメータに対応してプレースホルダの置換を行います.printfとsprintfの違いは,前者が直接出力し,後者が文字列を関数的に返すことである.実例を見てください.
$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); //       
print $s; //   :My name is WoW, I'm 12 years old.

少なくとも覚えておいてください.%sは文字列を表し、%dは数字を表し、%fは浮動小数点数を表し、%%は出力%自体を表し、他にも関連ドキュメントを表示できるタイプがたくさんあります.他にも似たようなものがあります.
  • vprintf、彼の2番目のパラメータは配列であり、可変長のパラメータではない.
  • sscanfは、いくつかの特殊な文字の処理方法によって異なります.
  • fscanfは、ドキュメントから読み取りフォーマットします.

  • print\_r
    出力配列やオブジェクトをフォーマットできる非常に一般的な関数です.注意2番目のパラメータはtrueに設定されており、直接出力せずに関数を返すことができます.
    $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); //       
    echo $s;
    //   
    //   ,     ob_start() ,              
    /**
        Array
        (
            [0] => a
            [1] => b
            [3] => c
            [show] => d
        )
    */

    var\_dumpとvarexports
    var\_dumpもよく使われる関数で、タイプと値を含む構造情報を表示し、配列オブジェクトを展開し、階層をインデントで表す.var\_exportsとは違うところはvarexportsが返す内容は通常のPHPコードで、直接使用でき、print_とrは2番目のreturnパラメータに類似しており,作用も類似している.
    $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',
        )
    */

    ===============
    公衆番号に注目:【ハードコアプロジェクトマネージャ】最新の文章を取得
    追加微信/QQ朋友:【xiaoyuezigonggong/149844827】無料PHP、プロジェクト管理学習資料
    知乎、公众号、震音、头条搜索【硬核プロジェクトマネージャー】
    B局ID:482780532