私はたくさん使っecho
ていprint_r
ますが、ほとんど使っていませんprint
。
私echo
はマクロでprint_r
、のエイリアスですvar_dump
。
しかし、それは違いを説明する標準的な方法ではありません。
私はたくさん使っecho
ていprint_r
ますが、ほとんど使っていませんprint
。
私echo
はマクロでprint_r
、のエイリアスですvar_dump
。
しかし、それは違いを説明する標準的な方法ではありません。
回答:
print
そしてecho
、多かれ少なかれ同じです。どちらも文字列を表示する言語構成要素です。違いは微妙である。print
一方、それは式で使用することができるように、1の戻り値を持つecho
持つvoid
戻り型を、echo
このような使用法はまれですが、複数のパラメーターを取ることができます。echo
は少し速いですprint
。(個人的に、私は常にを使用しecho
、絶対に使用しませんprint
。)
var_dump
変数のタイプとサブアイテムのタイプ(配列またはオブジェクトの場合)を含む、変数の詳細なダンプを出力します。print_r
より人間が読める形式で変数を出力します。文字列は引用符で囲まれず、型情報は省略され、配列サイズは指定されません。
var_dump
通常よりも便利です print_r
私の経験でデバッグ時。変数にどのような値/型があるか正確にわからない場合に特に便利です。次のテストプログラムを検討してください。
$values = array(0, 0.0, false, '');
var_dump($values);
print_r ($values);
ではprint_r
、0
and 0.0
、またはfalse
andの違いはわかりません''
。
array(4) {
[0]=>
int(0)
[1]=>
float(0)
[2]=>
bool(false)
[3]=>
string(0) ""
}
Array
(
[0] => 0
[1] => 0
[2] =>
[3] =>
)
エコー
戻り値なし
例えば echo "String 1", "String 2"
印刷する
戻り値 1
ので、式で使用できます
例えば print "Hello"
または、 if ($expr && print "foo")
print_r()
var_dump()
print_r()
たとえば、値のタイプも出力しますvar_export()
print_r()
し、var_dump()
出力を結果することは、有効なPHPコードです- !ノート:
print
式で使用することはできますが、コードの読みやすさの点で悪いため(そしてこれが役立つことはほとんどないため)、使用しないことをお勧めします。他の演算子と相互作用するときの優先順位規則も混乱する可能性があります。このため、個人的に使用する理由はありませんecho
。echo
、およびprint
は言語構造でprint_r()
あり、var_dump()
/ var_export()
は通常の関数です。echo
or への引数を囲むのに括弧は必要ありませんprint
(そして、それらを使用する場合、式でのように扱われます)。var_export()
は有効なPHPコードを返すため、後で値を読み取ることができますが、これを本番用コードに依存すると、を使用する必要があるため、セキュリティの脆弱性が導入されやすくなりますeval()
。値を格納して読み取るには、JSONなどの形式を使用することをお勧めします。速度は同等です。echo $a, $b;
シンタックスが必要なときにいつ必要なのかについての簡単なメモecho $a . $b;
:$ aまたは$ bのいずれかが本当に大きな文字列である場合、後者は追加のメモリを使用し、時間の前にメモリ内の文字列の個別の連結バージョンを作成しますブラウザへの出力を開始できます。
echo $a; echo $b;
もできます。
ジョンの回答に追加するecho
だけで、ページにコンテンツを印刷するために使用する唯一のものでなければなりません。
print
少し遅いです。var_dump()
そしてprint_r()
唯一のデバッグに使用する必要があります。
また、言及する価値があるということprint_r()
とvar_dump()
に2つ目の引数を追加し、デフォルトではエコーされますprint_r()
例えば、TRUEと評価は、それが代わりに返すために取得することを、少なくともprint_r($array, TRUE)
。
エコーとリターンの違いは次のとおりです。
echo
INGとreturn
INGの違いは何ですか?
print_r
PHPをコーディングしているときに、返されるパラメーターをよく使用しました。しかし、私は書く傾向がありましたprint_r( $foo, 1 );
。タイプする方が速い;)そして、これについては、名前print_r
もあまり説明的ではないので、読みやすさについてはあまり気にしません。
var_dump()
複数の引数を受け入れて出力できるprint_r()
ため、2番目の引数はサポートしていませんvar_dump()
。
echo
戻り型がない
print
戻り値の型があります
print_r()
フォーマット済みの出力、
違いエコー、印刷、 しますprint_rとのvar_dumpは非常に簡単です。
エコー
echoは実際には関数ではなく、出力を印刷するために使用される言語構造です。印刷よりわずかに高速です。
echo "Hello World"; // this will print Hello World
echo "Hello ","World"; // Multiple arguments - this will print Hello World
$var_1=55;
echo "$var_1"; // this will print 55
echo "var_1=".$var_1; // this will print var_1=55
echo 45+$var_1; // this will print 100
$var_2="PHP";
echo "$var_2"; // this will print PHP
$var_3=array(99,98,97) // Arrays are not possible with echo (loop or index value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with echo (loop or index value required)
括弧の有無にかかわらず、echoステートメントを使用することもできます。
echo ("Hello World"); // this will print Hello World
印刷する
同じように、エコーの構築物の印刷もなく言語構造の実際の関数です。間の違いエコー とプリントがそれである 印刷 のみ単一の引数を受け入れ、印刷するのに対し、常に1を返します。エコーは戻り値はありません。したがって、printステートメントは式で使用できます。
print "Hello World"; // this will print Hello World
print "Hello ","World"; // Multiple arguments - NOT POSSIBLE with print
$var_1=55;
print "$var_1"; // this will print 55
print "var_1=".$var_1; // this will print var_1=55
print 45+$var_1; // this will print 100
$var_2="PHP";
print "$var_2"; // this will print PHP
$var_3=array(99,98,97) // Arrays are not possible with print (loop or index value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with print (loop or index value required)
echoと同様に、 print は括弧を付けても付けなくても使用できます。
print ("Hello World"); // this will print Hello World
print_r
ますprint_r()関数は、変数に関する人間可読情報を印刷するために使用されます。引数が配列の場合、print_r()関数はそのキーと要素を出力します(オブジェクトも同様)。
print_r ("Hello World"); // this will print Hello World
$var_1=55;
print_r ("$var_1"); // this will print 55
print_r ("var_1=".$var_1); // this will print var_1=55
print_r (45+$var_1); // this will print 100
$var_2="PHP";
print_r ("$var_2"); // this will print PHP
$var_3=array(99,98,97) // this will print Array ( [0] => 1 [1] => 2 [2] => 3 )
$var_4=array("P"=>"3","J"=>"4"); // this will print Array ( [P] => 3 [J] => 4 )
var_dump
通常、デバッグに使用されるvar_dump関数。変数/配列/オブジェクトに関する情報(タイプと値)を出力します。
var_dump($var_1); // this will print int(5444)
var_dump($var_2); // this will print string(5) "Hello"
var_dump($var_3); // this will print array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
var_dump($var_4); // this will print array(2) { ["P"]=> string(1) "3" ["J"]=> string(1) "4" }
エコー:
関数ではなくステートメントです戻り値なし
括弧は不要
配列を印刷しない
印刷する
実機能です
戻りタイプ1
括弧が必要
配列を印刷しない
Print_r
人間が読める形式で印刷する
引用符にない文字列
タイプなどの変数の詳細情報ではありません
var_dump
要素のタイプやサブ要素のような変数のすべてのダンプ情報
print
は実際の関数ではなく、echoのような言語構造です。ステートメントとしても使用できます。 echo
はステートメントではなく、ステートメントで使用することもできません。 括弧は必要ありprint
ません。また、echoやprintが関数のように括弧を使用することもありません。また、主な違いの1つを見逃しました。echoは、コンマで区切られた複数の文字列をエコーとして受け入れます。
echo:echoは、括弧を使用する必要がない言語構造であり、任意の数のパラメーターを取り、voidを返すことができます。
void echo (param1,param2,param3.....);
Example: echo "test1","test2,test3";
print:かっこを使用する必要がない言語構造であり、1つのパラメータを取得して返す
1 always.
int print(param1);
print "test1";
print "test1","test2"; // It will give syntax error
prinf:少なくとも1つの文字列とフォーマットスタイルを取り、出力文字列の長さを返す関数です。
int printf($string,$s);
$s= "Shailesh";
$i= printf("Hello %s how are you?",$s);
echo $i;
Output : Hello Shailesh how are you?
27
echo returns void so its execution is faster than print and printf
print_r()
人間が読める形式で配列を出力するために使用されます。