ホームページ > バックエンド開発 > PHPの問題 > PHP出力の違いは何ですか?

PHP出力の違いは何ですか?

藏色散人
リリース: 2023-03-16 22:48:01
オリジナル
1939 人が閲覧しました

php の出力の違いは、1. echo は void を返し値を返さない、2. echo の速度は print より速い、3. print_r 関数は変数に関する分かりやすい情報を出力する、4. printf() 関数はフォーマットされた文字列を返します; 5. sprintf 関数はフォーマットされた文字列を出力する代わりに変数に書き込みます; 6. var_dump 関数はデバッグに使用されます。

PHP出力の違いは何ですか?

このチュートリアルの動作環境: Windows7 システム、PHP8.1 バージョン、DELL G3 コンピューター

6 つの出力方法php の違い

php 出力 echo, print , print_r , printf , sprintfvar_dump の違いの比較。

1. echo

echo() は実際には関数ではなく php ステートメントなので、括弧を使用する必要はありません。ただし、複数の引数を echo() に渡したい場合は、括弧を使用すると解析エラーが発生します。さらに、echo は void を返し、値を返さないため、値の代入には使用できません。

<?php

$a = echo("words"); // 错误!不能用来赋值

echo "words"; // 55nav

echo ("words"); // 55nav

echo ("apple","bear"); //发生错误,有括号不能传递多个参数

echo "alice","bill","cart", "daring";  // 不用括号的时候可以用逗号隔开多个值, 会输出 alicebillcartdaring  不管是否换行,最终显示都是为一行

$fistname="alice";

echo "$fistname com"; // 如果 $firstname = "alice", 则会输出 alice com.

echo &#39;$firstname com&#39;; // 由于使用单引号,所以不会输出$firstname的值,而是输出 $firstname com

?>
ログイン後にコピー

2、print

print() の使い方は echo() と同じですが、echo の方が高速です。印刷よりも少し速くなります。これも実際には関数ではないため、括弧を使用する必要はありません。

ただし、print() に複数の引数を渡したい場合は、括弧を使用すると解析エラーが発生します。

print は常に 1 を返すことに注意してください。これは echo とは異なります。

つまり、print を使用して値を割り当てることはできますが、それは実質的な意味はありません。 #

1 <?php 
2 
3 $a = print("alice"); // 这个是允许的
4 
5 echo $a; // $a的值是1
ログイン後にコピー

#3. print_r 関数

# print_r 関数は、変数に関するわかりやすい情報を出力します。

構文:

mixed print_r (mixed $expression [, bool return ] )

変数が文字列、整数、浮動小数点の場合はその値が直接出力され、変数が配列の場合は読みやすいように整形された配列、つまりキーと値に対応した形式で出力されます。

オブジェクト オブジェクトに似ています。

print_r には 2 つのパラメータがあります。1 つ目は変数で、2 つ目は true に設定できます。true に設定すると文字列が返され、それ以外の場合はブール値 TRUE## が返されます。 #.

<?php

$a="alice";

$c = print_r($a);

echo $c;  // $c的值是TRUE

$c = print_r($a,true);

echo $c; // $c的值是字符串alice

$d = [1,2,3,4];

print_r($d); // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
ログイン後にコピー

4. printf 関数

printf() 関数

はフォーマットされた文字列

を返します。 構文:

printf(format,arg1,arg2,arg)

パラメータ形式パーセント記号(「%」)で始まり変換文字で終わる変換形式です。

使用可能な形式値は次のとおりです:

* %% – パーセント記号を返します

* %b – 二进制数* %c – 依照 ASCII 值的字符* %d – 带符号十进制数* %e – 可续计数法(比如 1.5e+3)* %u – 无符号十进制数* %f – 浮点数(local settings aware)* %F – 浮点数(not local settings aware)* %o – 八进制数* %s – 字符串* %x – 十六进制数(小写字母)* %X – 十六进制数(大写字母)arg1, arg2, arg++ 等参数将插入到主字符串中的百分号 (%) 符号处。该函数是逐步执行的,在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。
ログイン後にコピー
他にもある場合% 記号 arg パラメーターよりも、プレースホルダーを使用する必要があります。プレースホルダーは % 記号の後に挿入され、数字と「\$」で構成されます。

表示されるパラメータは数値で指定できます。詳細は例を参照してください。

<?php

printf("My name is %s %s。","alice", "com"); // My name is alice com。

printf("My name is %1\$s %1\$s","alice", "com"); // 在s前添加1\$或2\$.....表示后面的参数显示的位置,此行输出 My name is alice alice因为只显示第一个参数两次。

printf("My name is %2\$s %1\$s","alice", "com"); // My name is com alice

?>
ログイン後にコピー

5、sprintf函数

此函数使用方法和printf一样,唯一不同的就是该函数把格式化的字符串写入一个变量中,而不是输出来。

<?php

sprintf("My name is %1\$s %1\$s","alice", "com");  //你会发现没有任何东西输出的。

$out = sprintf("My name is %1\$s %2\$s","alice", "com");

echo $out;  //输出 My name is alice com
ログイン後にコピー

6、var_dump函数

功能: 输出变量的内容、类型或字符串的内容、类型、长度。常用来调试。

1 var_dump(&#39;hello&#39;); // string(5) "hello"
ログイン後にコピー

 推荐学习:《PHP视频教程

以上がPHP出力の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート