PHPの文字列等の出力
PHPの命令は、以下の「~」の部分に書いていきます。
<?php ~; ?>
文字列を表示させる
ということで、まずは文字列「こんにちは!」を表示させてみます。
文字列を表示させるには、echoを使用し、表示させたい文字列をシングルクォーテーション「’」かダブルクォーテーション「”」で囲みます。
文末にはセミコロン「;」も忘れずに。
<?php echo 'こんにちは!'; ?>
シングルクォーテーションとダブルクォーテーションでの出力の違い
例えば以下の場合、出力結果に違いは見られません。
シングルクォーテーション:<?php echo 'こんにちは!'; ?><br> ダブルクォーテーション :<?php echo "こんにちは!"; ?>
出力結果
シングルクォーテーション:こんにちは!
ダブルクォーテーション :こんにちは!
シングルクォーテーション:こんにちは!
ダブルクォーテーション :こんにちは!
しかし、変数や特殊文字のエスケープシーケンス(\nや\tなど)が含まれたものは、シングルクォーテーションで囲んだ場合は展開されません。
以下の例では、はじめに変数名aに代入演算子「=」で1を代入しています。
<?php $a = 1; ?> シングルクォーテーション:<?php echo '変数名aの値は$aです。'; ?><br> ダブルクォーテーション :<?php echo "変数名aの値は$aです。"; ?>
出力結果
シングルクォーテーション:変数名aの値は$aです。
ダブルクォーテーション :変数名aの値は1です。
シングルクォーテーション:変数名aの値は$aです。
ダブルクォーテーション :変数名aの値は1です。
計算結果を表示させる
echoでは、演算を行った結果を直接表示させることも可能です。
<?php echo 2 + 3; ?>
出力結果
5
5
echoとprint
文字列を出力するものとして、echoの他にprintがあります。
それぞれの特徴と違いは以下の通りです。
echo
複数の引数がとれる
echoはvoid echo(string $arg1 [, string $… ])であるため、複数の引数がとれます。
引数は、カンマ区切りで指定します。
<?php echo 'aa', 'bb'; ?>
出力結果
aabb
aabb
返り値がない(void)
以下は値を持たずエラーとなります。
<?php $a = echo 'aa'; ?>
関数のように動作しない
たとえば三項演算子を利用した以下はエラーとなります。
<?php $narimasu = true; $narimasu == true ? echo "東京" : echo "埼玉"; ?>
引数はひとつ
printはint print(string $arg)であり、取る引数はひとつとなるため、以下はエラーとなります。
<?php print 'aa', 'bb'; ?>
返り値は常に1(int)
返り値は常に1を返します。
以下の場合は、まずaaがprintされ、その返り値の1がprintされます。
<?php $a = print 'aa'; print $a; ?>
出力結果
aa1
aa1
関数のように動作が可能
式の形をとり、返り値があるということは、たとえば三項演算子を利用した以下でも動作します。
<?php $narimasu = true; $narimasu == true ? print "東京" : print "埼玉"; // もうちょっとスマートに、print ($narimasu == true ? "東京" : "埼玉");でもOK ?>
出力結果
東京
東京
ちなみに、こうすると返り値があるってわかりやすいかも。
<?php $narimasu = true; print ($narimasu == true ? print "東京" : print "埼玉"); ?>
出力結果
東京1
東京1
短縮形での出力
printとの違いでもありますが、echoは短縮して書くことができます。
<?php $a = 'aa'; echo $a; ?><br> <?=$a?>
出力結果
aa
aa
aa
aa
さいごに
- echo ‘~’;では変数や特殊文字は展開せず、echo “~”;では展開する
- 演算結果も表示してくれる
- echoは文(返り値がない)、printは式(返り値がある)
- echoは<?=$val?>と短縮できる