ホームページ >バックエンド開発 >PHPチュートリアル >PHP における echo、print_r、var_dump の違いの分析、print_rvar_dump_PHP チュートリアル
この記事では、PHP の echo、print_r、var_dump の違いを詳しく分析します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:
3 つはすべて出力関数を備えた PHP ステートメントですが、print_r(expression) と var_dump(expression) は関数であり、echo は関数ではなく単なる言語構造であるため、式の一部として使用することはできません。
動作するphpの8つのデータ型の場合:
① echoは数値変数や文字列を出力するために使用されます。ただし、配列などの参照変数を出力するために echo を使用すると、オブジェクトを出力するときに配列の名前のみが出力されます。サーバーは、「キャッチ可能な致命的なエラー: クラス Person のオブジェクトを文字列に変換できませんでした」というエラーを表示します。およびエラー表示エコーのみ文字列の出力に使用できます。
②print_r(expression) の機能は配列を出力することですが、実際にはパラメータ式の種類は数値変数と参照変数になります。
③ var_dump(expression)関数の出力結果は<変数の型、変数の値、変数の長さ>であり、パラメータ式は様々な変数の型を表しており、その機能は変数の詳細情報を出力することです。
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
print_r — 変数に関するわかりやすい情報を出力します。通常、配列構造の出力に使用されます。
var_dump — 変数に関する関連情報を出力します。配列とオブジェクトの印刷
自分で使ってみればわかります
文字列を出力する 4 つの方法。 echo
print()
printf()
print_r()
echo
は、複数の値をカンマで区切って一度に出力できます。 echo は言語構造体であり、実際の関数ではないため、式の一部として使用することはできません。
正しい構文: echo "Hello", "World";
間違った構文: echo ("Hello", "World");
print()
関数 print() は、文字列が返された場合に値 (引数) を出力します。正常に表示された場合は true、それ以外の場合は false を返します。たとえば、 if (!print("Hello, World")){
die("あなたは私の話を聞いていません");
}
printf()
printf() は C 言語の printf() に由来します。この関数はフォーマットされた文字列を出力します。
構文: printf(format,arg1,arg2,arg++)
format は、文字列とその中の変数のフォーマット方法を指定します。
arg1、arg2、++ およびその他のパラメーターは、メイン文字列にパーセント記号 (%) を挿入します。で。この関数はステップごとに実行されます。最初の % 記号には arg1 が挿入され、2 番目の % 記号には arg2 が挿入されます。
例: ?php
$str = "こんにちは";
$number = 123;
printf("%s 世界。曜日番号 %u",$str,$number);
?>
#結果======
Hello world. 曜日番号 123
引数パラメーターよりも % 記号の数が多い場合は、プレースホルダーを使用する必要があります。プレースホルダーは % 記号の後に挿入され、数字と「\$」で構成されます。例 3 を参照してください。
例: ?php
$number = 123;
printf("小数点以下2桁の場合: %1\$.2fbr />小数点以下の場合: %1\$u",$number);
?>
#Result
小数点以下 2 桁の場合: 123.00
小数点以下の場合: 123
print_r() と var_dump()
print_r() は文字列と数値を単純に出力できますが、配列はキーと値のリストで囲まれています。形式は次のとおりです。と表示され、Array で始まります。たとえば、 $a = array('name' => 'Fred', 'age' => '15', 'wife' => 'Wilma');
print_r($a);
出力:配列
{
[名前] => フレッド
[年齢] => 15
[妻] => ウィルマ
}
オブジェクトについても同様です。たとえば、 class P {
var $name = 'nat';
// ...
}
$p = new P;
print_r($p);
出力: Object
{
[name] => nat
}
しかし、ブール値とNULLを出力するprint_r()の結果はすべて「...残りの全文>>
」を出力するため、意味がありません。