【 PHP 】PHP8に入門してみた 46日目 PHPの基本 ( 続・奥が深い文字列リテラル )

PHP8技術者認定初級試験 が始まるようなので 試験に向けて (できるだけ)勉強しようと思います! 使用する書籍は独習PHP 第4版(山田 祥寛)|翔泳社の本 (shoeisha.co.jp) となります。

データ型

シングルクォート文字列とダブルクォート文字列と変数展開

PHPではシングルクォート、もしくはダブルクォートで文字列をくくると「文字列」として識別されます。
なぜ2種類のくくり文字が存在するのか、それは変数展開にあります。

PHPでは文字列中に変数が存在すると、その変数の中身に置き換えて文字列を構成します。

<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHPの基本</title>
</head>

<body>
    <?php

    $v = '最高!';
    print "PHPは・・・$v";
    ?>
</body>

</html>

以下のように$vの値が展開されています。

この機能はダブルクォーテーションでくくった場合のみ有効です。
シングルクォートでくくった場合は$vがそのまま文字列として出力されます。

<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHPの基本</title>
</head>

<body>
    <?php

    $v = '最高!';
    print 'PHPは・・・$v';
    ?>
</body>

</html>

そのまま出力されました。

なんでもかんでも変数展開されては困るのでこのように2種類のくくり記号が存在するわけです。

変数展開のお作法

変数展開の記述は大きく3つあります。

  1. “変数展開は $v ですね!"
  2. “変数展開は ${v} ですね!"
  3. “変数展開は {$v} ですね!"

1の場合はどこまでが変数なのかパット見た感じわからない状況もあります。
なので{}でくくるほうがよさそうです。

メモ

個人的には$マークは{}の外に追い出したい気持ちがあります。

しかしPHPの変数は$から始まるため、$と変数名は一心同体・・・悩ましいです。

PHPPHP

Posted by raika@blog