PHPの変数名を変数にする「可変変数」の使い方を現役エンジニアが解説【初心者向け】
初心者向けにPHPの変数名を変数にする「可変変数」の使い方について現役エンジニアが解説しています。可変変数とは変数名を動的に設定する方法のことです。$$変数名や${}を使って書くことが出来ます。そうすると変数の値に入ってる値が変数の名前になります。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
今回は、PHPの変数名を変数にする「可変変数」の使い方について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
PHPについてそもそもよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプ、PHP/Laravel講座の内容をもとに紹介しています。
今回は、PHPに関する内容だね!
どういう内容でしょうか?
PHPの変数名を変数にする「可変変数」の使い方について詳しく説明していくね!
お願いします!
可変変数とは
変数名は$exampleのようにコードに直接書いてあるため、変更できないと思うかもしれません。
しかし、変数名は可変にできます。
可変変数の使い方
普通の変数名はコードに直接書かれます。
通常は次のように書きます。
$example = 'hello';
では、可変変数はどのように書くのでしょうか。
$name = 'variable'; $$name = 'hello';
このように書かれます。
実際に対話シェルで動かして確認してみましょう。
php -a php > $name = 'variable'; php > $$name = 'hello'; php > echo $variable; hello php > echo $$name; hello
最初の$nameは変数名を指定しています。
次の$$nameという書き方が、可変変数の特徴的な書き方です。また、変数名の混乱を避けたり、変数名を柔軟に変更するために${$name}という書き方ができます。
なぜこのような表記が必要なのかについては、実際のコードで説明します。
[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは
実際に書いてみよう
では、実際のコードを見てみましょう。
<?php function sendThePackage($name, $address1, $address2, $address3) { if (empty($name)) { echo '名前を入れてください'; exit; } for ($i = 1; $i <= 3; $i++) { $var_name = 'address' . $i; if (empty($$var_name)) { echo '住所を入れてください'; exit; } } echo '入力ありがとうございます'; }
$$var_nameの部分が可変変数になっています。$var_nameを’address1’、’address2’、’address3’と変化させています。
これによって、$address1、$address2、$address3を調べることができるわけです。
では、$var_nameを使わないとどうなるのでしょうか。
[抜粋]$var_name = 'address' . $i;//削除 if (empty(${'address' . $i})) {
このように、先ほど解説した、{}を使って表現できます。
この他にも、可変プロパティなどもありますので、ぜひ公式マニュアルを見てみてください。
筆者プロフィール
植西重史(うえにししげふみ)
職業プログラマー歴は2020年現在で27年、新卒入社当時はCOBOL・C言語。フリーランスになってからは主にPHPを使ってシステム開発、WordPressを使って企業ページなどを開発してきました。 TechAcademyではPHP/Laravel、はじめてのプログラミング、WordPressコースを担当しております。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、PHPやフレームワークのLaravelを使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。