初めてのPHP マスオで学ぶ変数編

PHPの書き方

変数とは何か

例えば、下記のコードでマスオと表示することが出来ます。

<?php
    echo 'マスオ';
?>

しかし、以下のように何回もマスオと書く必要がある場合、何度も入力する手間や、最後の文章のようにタイプミスしてしまう可能性があります。

<?php
    echo 'フグ田マスオは';
    echo '嫁からはマスオさんと呼ばれています';
    echo 'マスオにはタラちゃんという息子がいます';
    echo 'マサオさんはとても幸せです。';
?>

なので何度も使う物は変数という箱に入れて使い回しの効く物にします。

変数の作り方

変数の作り方は単純で、変数の名前を決めて頭に$を付けてあげるだけです。

文字列の大小は識別される、数字や_以外の記号から始まる変数は作れない等のルールがあるため注意が必要です。

<?php
    $masuo = 'マスオ';
?>

これでマスオという文字列が$masuoという変数に格納(代入)されました。

今後は$masuoと書くだけでマスオを呼び出すことが出来ます。

変数の展開

単純に変数を展開する場合はこれだけで大丈夫です。

<?php
    $masuo = 'マスオ';

    echo $masuo;
?>

変数と文字列

変数と文字列を一緒に使いたい場合が多々あると思います。

<?php
    $masuo = 'マスオ';

    echo 'フグ田$masuoは';
    echo '嫁からは$masuoさんと呼ばれています';
    echo '$masuoにはタラちゃんという息子がいます';
    echo '$masuoさんはとても幸せです。';
?>

残念ながらこれでは展開できません。

「'」で囲まれた中の変数は展開出来ない為です。

なので、Ctrf + Hを押して置換メニューを開き、検索に「'」置換に「"」を入力してCtrf + Alt + Enterを押し、全ての「'」を「"」に置換します。

この置換とCtrf + Fによる検索はよく使うショートカットなので憶えおくと便利です。

これで置換は出来ましたが、このままだとどこからどこまでが変数なのか分からない為エラーが発生します。

なので変数を「{}」で囲みます。

VScodeだと変数を選択した後「{」を入力すると自動で両側を挟んでくれるので便利です。

<?php
    $masuo = "マスオ";

    echo "フグ田{$masuo}は";
    echo "嫁からは{$masuo}さんと呼ばれています";
    echo "{$masuo}にはタラちゃんという息子がいます";
    echo "{$masuo}さんはとても幸せです。";
?>

これで無事に変数が展開されてマスオと表示されるようになりました。

ただし、変数のみを展開する時に「{}」を使うとエラーが出るので注意です。

その場合は”{$masuo}”と書くか、普通に$masuoを使って下さい。

Laravelでは{{$masuo}}と書くことで安全な状態で変数を展開出来る為、この「{}」を使った展開方法は覚えておくと後々楽です。

変数の様々な展開方法

変数の展開の仕方は様々方法があり、下記のどれでも展開することが出来ます。

実際には先ほどのシングルクォーテーションとダブルクォーテーション同様、

展開方法で結合なのか区切りなのかという違いがありますが、基本的に文字列と変数を展開するだけであれば気にせず好きな方法で展開して貰って構わないと思います。

<?php
    $masuo = 'マスオ';

    echo 'ドット連結を使い、文字列と変数を分けた' . $masuo . 'さん';
    echo "カンマ区切りを使って分けた" , $masuo , "さん";
    echo "連結、区切りなら" . $masuo , 'さんに繋げる文字列はシングル、ダブルクオーテーションどちらで囲んでもいい';
    echo "ただし、{$masuo}等、文字列間で展開する場合はダブルクオーテーションでなければならない";
    echo "${masuo}という書き方もあるし";
    echo "実はスペースを挟むことでも$masuo さんを展開できたりもする(ただしスペースが挟まれるためオススメしない)";
?>

まとめ

・変数は$nameで定義する。

・展開には様々な方法がある。

・変数だけなら$name、文字列を併用するなら"{$name}で展開"

・または$name  . "等で文字列を繋げる<?php echo 'hello'; echo 'ohayo';

2021/08/27

Prev
PHPの始め方

初めてのPHP PHPの書き方 基礎編

2021/08/26

Comment Store Form

/128

(必須)

/2048