2017.02.09WEB - PHP

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です。

計算結果を表示させる

echoでは、演算を行った結果を直接表示させることも可能です。

<?php echo 2 + 3; ?>
出力結果
5

echoとprint

文字列を出力するものとして、echoの他にprintがあります。
それぞれの特徴と違いは以下の通りです。

echo

複数の引数がとれる

echoはvoid echo(string $arg1 [, string $… ])であるため、複数の引数がとれます。
引数は、カンマ区切りで指定します。

<?php echo 'aa', 'bb'; ?>
出力結果
aabb
返り値がない(void)

以下は値を持たずエラーとなります。

<?php $a = echo 'aa'; ?>
関数のように動作しない

たとえば三項演算子を利用した以下はエラーとなります。

<?php
$narimasu = true;
$narimasu == true ? echo "東京" : echo "埼玉";
?>

print

引数はひとつ

printはint print(string $arg)であり、取る引数はひとつとなるため、以下はエラーとなります。

<?php print 'aa', 'bb'; ?>
返り値は常に1(int)

返り値は常に1を返します。
以下の場合は、まずaaがprintされ、その返り値の1がprintされます。

<?php
$a = print 'aa';
print $a;
?>
出力結果
aa1
関数のように動作が可能

式の形をとり、返り値があるということは、たとえば三項演算子を利用した以下でも動作します。

<?php
$narimasu = true;
$narimasu == true ? print "東京" : print "埼玉";
// もうちょっとスマートに、print ($narimasu == true ? "東京" : "埼玉");でもOK
?>
出力結果
東京

ちなみに、こうすると返り値があるってわかりやすいかも。

<?php
$narimasu = true;
print ($narimasu == true ? print "東京" : print "埼玉");
?>
出力結果
東京1

短縮形での出力

printとの違いでもありますが、echoは短縮して書くことができます。

<?php
$a = 'aa';
echo $a;
?><br>
<?=$a?>
出力結果
aa
aa

さいごに