文字列の出力

2012-08-20 04:02:27
「echo」(エコー)はブラウザにHTMLを出力します。文字列を出力する際に「”」「’」ダブルクォーテーションかシングルクォーテーションで文字列を囲まないといけません。そのルールを説明したいと思います。

<単純な文字列の出力>


<?php
echo 123456;
echo '123456';
echo "123456";
echo hello!; //←エラーがでます
echo 'hello!';
echo "hello!";
echo あいうえお; //←エラーがでます
echo 'あいうえお';
echo "あいうえお";
?>
文字列はクォーテーションをつけないとエラーが出てしまいます。最後に「;」(セミコロン)をつけることも重要で、抜けるとエラーが出ます。数値の場合はクォーテーションはあってもなくても大丈夫です。では、次はHTMLを出力してみます。

<HTMLの出力>


<?php
echo '<div>hello!</div>';
echo "<div>hello!</div>";
echo '<div style="color:red;">hello!</div>';
echo "<div style="color:red;">hello!</div>"; //←エラーがでます
echo "<div style=\"color:red;\">hello!</div>";
?>
上記の4列目はエラーが出ます。ダブルクォーテーションで括っている文字列の中にダブルクーテーションがある場合は、5列目のようにクォーテーションの前に「¥」(エンマーク)をつけないといけません。このことをエスケープ処理をいいます。HTMLを出力する際はシングルクォーテーションの方がエスケープしなくてもいいことが多いので、オススメです。次は文字列の中で変数を使用してみましょう。

<HTMLと変数の出力>


<?php
$str = 'hello!';
echo $str;
echo '$str';
echo "$str";
echo '<div style="color:red;">彼は$strと言いました。</div>';
echo '<div style="color:red;">彼は'.$str.'と言いました。</div>';
echo "<div style=\"color:red;\">彼は$strと言いました。</div>"; //←文字化けの可能性あり
echo "<div style=\"color:red;\">彼は{$str}と言いました。</div>";
?>

<結果>


hello!
hello!
hello!
彼は$strと言いました。
彼はhello!と言いました。
彼??hello!??言いました。
彼はhello!と言いました。
変数を出力する場合は注意が必要です。まずシングルクォーテーションで括った場合は「$str」とそのまま表示されてしまうので、「'.$str.'」こう書かなければいけません。これを文字列の結合といいます。

ダブルクォーテーションで括った場合は変数の中身がちゃんと表示されますが、文字列や変数に日本語が含まれている場合は、「{$str}」のように大括弧で括ってあげた方が文字化けがおきないので確実です。

慣れないうちは出力エラーが頻繁にでてしまうと思いますが、以上のことを理解しておけばクリアできる問題です。
カテゴリ: PHP