とぎぷろべい

包丁研ぎとプログラミングと米国株投資についてのなんやかんや

printとechoについて(PHP)

f:id:feci:20210622155818j:plain

PHP7

 

PHP7.4.1におけるprintメソッドについて。

$t = 3;

print('$t\n');            //$t\n
print '$t\n';             //$t\n
print'$t\n';              //$t\n

print("$t\n");            //3と改行
print "$t\n";             //3と改行
print"$t\n";              //3と改行

print($t\n);              //エラー
print $t\n;               //エラー
print($t);                //3
print $t;                 //3

print('$t' . "$t" . $t);  //$t33
print('$t' . "$t" + $t);  //エラー
print('$t' , "$t" + $t);  //エラー
print('$t' , "$t" . $t);  //エラー
print('$t' + "$t" + $t);  //エラー

print '$t' . "$t". $t ;   //$t33
print '$t' . "$t" + $t ;  //エラー
print '$t' , "$t" + $t ;  //エラー
print '$t' , "$t" . $t ;  //エラー
print '$t' + "$t" + $t;   //エラー

ピリオドやカンマやプラスなどの記号の前後にある半角スペースは、PHPの処理的にはあってもなくてもどっちでもいいです。

 

コードが正しい場合は、半角スペースがあってもなくても正常に処理はおこなわれます。

またコードが正しくない場合は、半角スペースがあってもなくても結果はすべてエラーとなります。

 

ちなみにこのprintの結果を下のechoの結果と見比べてもらうと分かりますが、printとechoでは処理の内容にはほとんど違いはありません。

 

printとechoとのちがいは、カンマでパラメータの連結ができないことと、戻り値が1か無かという2点だけです。

それ以外の挙動は、printもechoもほとんど同じです。 
 
 
 
printの戻り値(返り値)について。
<?PHP

$a = print'あいうえお'; //あいうえお(なぜか出力される)
print($a);              //1

 printの戻り値は、例外なく常に1になります。

 

 

echoメソッドについて。

$t = 3;

echo('$t\n');            //$t\n
echo '$t\n';             //$t\n
echo'$t\n';              //$t\n

echo("$t\n");            //3と改行
echo "$t\n";             //3と改行
echo"$t\n";              //3と改行

echo($t\n);              //エラー
echo $t\n;               //エラー
echo($t);                //3
echo $t;                 //3

echo('$t' . "$t" . $t);  //$t33
echo('$t' . "$t" + $t);  //エラー
echo('$t' , "$t" + $t);  //エラー
echo('$t' , "$t" . $t);  //エラー
echo('$t' + "$t" + $t);  //エラー

echo '$t' . "$t". $t ;   //$t33
echo '$t' . "$t" + $t ;  //エラー
echo '$t' , "$t" + $t ;  //$t6
echo '$t' , "$t" . $t ;  //$t33
echo '$t' + "$t" + $t;   //エラー

echoの場合も、ピリオドやカンマやプラスなどの記号の前後にある半角スペースは、PHPの処理的にはあってもなくてもどっちでもいいです。

 

また上にも書きましたが、echoとprintの最大のちがいはカンマでパラメータAとパラメータBを連結して処理できるかどうかです。

echoならこれができますが、printにはこの処理はできません。

 

しかしこのカンマによるパラメータの連結は上記のとおり、たとえechoであっても()内にておこなうことはできません。

 

もし()を使ったうえでパラメータAとBの連結をおこないたい場合は、echo ($t) , (”\n”) , (’あいうえお’); のような形で記述をするようにしてください。

そうすればエラーはでません。

 

 

echoには戻り値(返り値)について。

<?PHP

$b = echo"かきくけこ"; //エラー(戻り値がないのでエラーになる)
echo($b);              //Notice(戻り値がないので$bの中は空なのでNoticeになる)

echoの戻り値は、例外なく常にありません。 

 

 

以上です。