こんにちはフロントエンドエンジニアのまさにょんです!
今回は、PHPの標準出力の基本 echo と print の違いと使い方について解説していきます。
echoとは?
echoは、文字列を出力するPHPの標準出力の機能です。
echoで出力できるのは、スカラー型(int, string, boolean)のような基本的なデータ型のみです。
文字列として評価されない値を渡した場合、文字列に強制的に変換される機能がありますが、ArrayやObjectにはそれは適応されない模様です。
ArrayやObjectを出力表示したい場合は、json_encode()を使ってJSON文字列に変換して出力しましょう。
ちなみに後述する print との主な違いは、echo がリスト形式の引数を受け付け、戻り値を持たない点の2点です。
echo — 1 つ以上の文字列を出力する
echo(string
...$expressions
): void
echo
は実際には関数ではなく、言語構造です。
echo
キーワードの後に続く引数は、 コンマで区切られた(文字列として評価される)式のリストであり、括弧で括る必要はありません。[ パラメータ : expressions ]
echo
がリスト形式の引数を受け付け、戻り値を持たないことです。出力したいひとつ以上の文字列として評価される式。
コンマで区切ります。 文字列として評価されない値を渡した場合、文字列に強制的に変換されます。
引用元: echo – Manual – PHP
<?php
// [ echo-基本構文 ] echo(string ...$expressions): void
// Sample-Dataを5つ用意しました。
$scalar_type1 = 1;
$scalar_type2 = 'ロボ玉';
$scalar_type3 = true;
$scalar_type4 = false;
$array = ['robotama', 'ロボ玉', 'ロボ玉試作1号機'];
// 1. echoで出力できるのは、スカラー型(int, string, boolean)のような基本的なデータ型のみです。
// それぞれの出力結果は、右側に記載
echo $scalar_type1 . "\n"; // 1
echo $scalar_type2 . "\n"; // ロボ玉
echo $scalar_type3 . "\n"; // 1
echo $scalar_type4 . "\n"; // '' (空文字)
// 2. 真偽値(true/false)は、trueなら1, falseなら''(空文字)が出力されます。
echo $scalar_type4 == '' ? 'true'. "\n" : 'false' . "\n"; // true
// 3. ArrayやObjectなどの複合型は、そのままでは出力できません。
// echo $array;
// PHP Warning: Array to string conversion ([翻訳] PHP 警告: 配列から文字列への変換)
// => 文字列に変換しないと出力でいないよ!って注意されてます。
// 4. json_encode()を使ってJSON文字列にすれば、出力できます。
echo json_encode($array, JSON_UNESCAPED_UNICODE) . "\n";
// ["robotama","ロボ玉","ロボ玉試作1号機"]
// 5. echo は、リスト形式(「 , 」区切り)の引数を受け付ける
echo $scalar_type1 . "\n", $scalar_type2 . "\n", $scalar_type3 . "\n"; // OK
// 1ロボ玉1
printとは? echoとの違いは?
print は、文字列を出力するPHPの標準出力の機能です。
出力の結果の表示などは、echoと一緒です。
echo と print の違いは、、、
echoが リスト形式の引数を受け付け、戻り値を持たないのに対して、
print は単一の引数のみ受け付け、返り値は 必ず1 を返すことです。
print — 文字列を出力する
print(string
$expression
): intprintは実際には関数ではなく、 言語構造です。
引数は、print の後に文字列として評価される式を指定し、括弧で括る必要はありません。
echo との主な違いは、 print が単一の引数のみ受け付け、常に 1 を返すことです。
[ パラメータ : expressions ]出力する文字列として評価される式。
文字列として評価できない値は、 強制的に文字列に変換されます。
引用元: print – Manual – PHP
<?php
// [ print-基本構文 ] print(string $expression): int
$scalar_type2 = 'ロボ玉';
$array = ['robotama', 'ロボ玉', 'ロボ玉試作1号機'];
// 1. echo と出力の形式などは一緒です。
print $scalar_type2 . "\n"; // ロボ玉
// 2. print もArrayやObjectなどの複合型は、そのままでは出力できません。
// print $array;
// PHP Warning: Array to string conversion ([翻訳] PHP 警告: 配列から文字列への変換)
// => 文字列に変換しないと出力でいないよ!って注意されてます。
// 3. json_encode()を使ってJSON文字列にすれば、出力できます。
print json_encode($array, JSON_UNESCAPED_UNICODE) . "\n";
// ["robotama","ロボ玉","ロボ玉試作1号機"]
// 4. print は、リスト形式(「 , 」区切り)の引数を受け付けません。
// print $scalar_type1, $scalar_type2, $scalar_type3 . "\n"; // NG
// 5. print の返り値は、必ず「 1 」です。
$print_return = print 'ロボ玉'. "\n";
echo $print_return . "\n"; // 1
Twitterやってます!Follow Me!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!