PHP・MySQL入門

ゼロからはじめるPHP・MySQL入門 第5回「変数について」

ここまでの記事はこちら
 

今回はプログラミングに欠かせない「変数」についてです。

変数はどんな時に使うのか、変数を使うときのルールについて紹介していきます。
 

変数とは?

例えば HTML でこのようなコードを書くとします。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Code for Fun へようこそ</title>
</head>
<body>
<p>「Code for Fun」へようこそ。「Code for Fun」へお越しいただきありがとうございます。
「Code for Fun」では Android アプリ開発や PHP ウェブ開発について紹介しています。
ぜひ「Code for Fun」でプログラミングでお楽しみください。
「Code for Fun」へのお問い合わせはこちらからお願いします。</p>
</body>
</html>

 
 

title タグと p タグ内に何度もサイト名「Code for Fun」が出てきていますね。

HTML に間違いはありませんが、途中でサイト名を「Code for Fun!!」に変更したくなったらどうすれば良いでしょうか?

まずは HTML に書いたサイト名をすべて検索して、新しいサイト名に書き換えなくてはなりません。複数のページに同じ HTML を書いていたら、さらに何十か所も変更する必要が出てきます。

気合で出来そうな気もしますが、見落とす可能性もありますし、何よりとても面倒ですよね。。
 

このように

  • 何度も同じ文字列や数値を使う
  • あとで変更を加える可能性がある

ものは「変数」にしておくことがベストです。
 
 

変数の使い方

変数の使い方は簡単で、名前をつけて値を入れるだけです。

$変数名 = "変数にする値";

変数の先頭には必ず「半角の $」を付けます。
 

例えば、サイト名を変数にする場合は以下のようにします。

$site_name = "Code for Fun";

ダブルクォーテーションで囲っているのは、サイト名が文字列だからです。
 

$num = 3;

と数値を変数にすることもできます。
 

算数では = は イコール(等しい)という意味で使われますが、プログラミングでは「代入」といいます。

この「代入」のイメージが分かりにくく、プログラミングが嫌だなと思ってしまう方がいます。私もプログラミングの勉強を始めた当時は「変数にデータを代入する」という言葉がしっくりきませんでした。

多くの本や教材では「代入」や「データを入れる」という表現をしていますが、私の中では「$num を 3 にする」「$num は 3」というイコールに近いイメージで考えています。

不正確だという人もいるかもしれませんが、あくまでイメージなので、理解しやすい方で考えてみてください。
 
 

変数の上書き

途中で変数に変更を加えた場合、新しく書いた方が採用されます。

例えば以下のコードを書いた場合、echo で出力されるのは「山田」「佐藤」のどちらでしょうか?

$name = "山田";
$name =  "佐藤";
echo $name;

 

答えは「佐藤」です。

文字列の変数をこのように書き換えることはあまり無いですが、数値の場合は同じ処理を繰り返す場合に新しい値を代入していくことがあります。

途中でうっかり変数の値を変えてしまったということも起こりうるので、コードを書くときは「現在この変数はどの値を持っているのか」を確認することも大切です。
 
 

変数の具体的な使い方

では、先ほどの HTML のサイト名を変数にしてみましょう。

<?php
$site_name = "Code for Fun";
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title><?= $site_name; ?> へようこそ</title>
</head>
<body>
<p>「<?= $site_name; ?>」へようこそ。「<?= $site_name; ?>」へお越しいただきありがとうございます。
「<?= $site_name; ?>」では Android アプリ開発や PHP ウェブ開発について紹介しています。
ぜひ「<?= $site_name; ?>」でプログラミングでお楽しみください。
「<?= $site_name; ?>」へのお問い合わせはこちら。</p></body>
</html>

 

2行目で $site_name という変数を用意しています。

このように変数にしておけば、途中でサイト名を「Code for Fun!!」に変えたくなったときは

$site_name = "Code for Fun!!"; 

一か所変更するだけで解決です。
 

変数は HTMLと組み合わせる以外にも使い方はたくさんあります。

例えばデータベースから取り出したデータを変数に入れたり、フォームで送信したデータを受け取ったり、同じ処理を繰り返すときに $i = 0 と基準値を用意したりさまざまです。

これから PHP コードを書きながら何度も目にして自然と身についていくものなので、「$変数」という形を覚えておいてください。
 
 

変数の名前の決め方・ルール

変数名は適当につければ良いわけではなく「しっかりと意味をもたせる」ことが大切です。

ここからは変数名に使える文字・書き方のルールを紹介します。

最後に簡単なクイズもあるので挑戦してみてくださいね!

使うことができる文字

変数名に使うことができる文字は

  • 半角英数字
  • 日本語
  • _(アンダースコア)

です。

注意点1

半角英字は大文字と小文字が区別されます。
$name と $Name は別の変数になります。
 

注意点2

変数の先頭に数字をつけることはできません。

正しい:$name
間違い:$1name

 

注意点3

使うことができる記号は _ (アンダースコア)だけです。? & などは使うことができません。スペース(空白)を入れることもできません。

正しい:$my_name
間違い:$my&name
間違い:$my name

 

注意点4

「$日付」「$テキスト」のように日本語も使うことができますが、実際に使っているプロジェクトを見たことはありません。日本語の変数名を使うという特別な指示がない限り、英数字を使うことをおススメします。
 
 

変数名の書き方

変数名が単語1つの場合は

$name
$tel
$date

のように小文字で書くのが一般的です。
 

複数の単語を使う場合は、アンダースコアでつなぐか、キャメル型で書きます。

$my_name
$my_last_name
$myName 
$myLastName

 

$myName, $myLastName の書き方を、デコボコがキャメル(ラクダ)のようなので「キャメル型」と呼びます。

先頭の文字は小文字、次の単語から先頭の文字を大文字にします。

アンダースコアとキャメル型は両方ともよく使われる書き方なので、どちらを使っても問題ありませんが、両方使ってしまうとコードが読みにくくなります。プロジェクトごとにどちらかに統一するようにしてください。

 
 

変数名の悪い例

ここからは私が実際に見たことがある、適当ではない変数名を紹介します。

予約システムの改修の案件を受けたときのものなのですが、これらの変数が何を意味しているか分かるでしょうか?

  • $name1
  • $name2
  • $yubin

 

答えは「名字」「名前」「郵便番号」です。

$yubin は分からなくもないですが、$name1, $name2 はフルネームなのかニックネームなのかも判断できないですし、とても分かりにくいです。

このように変数が何を意味しているのか分かりにくい名前は使うべきではありません。
 

さきほどの場合は

  • $last_name
  • $first_name
  • $zipcode

とするのが理想的です。

変数名を見ただけで、何を意味しているのか簡単に判断できますよね。

自分一人で開発するプロジェクトだとしても、今後他の人が修正を加えたり、複数人で作業することも考えられます。

変数名を考えるときは「自分以外の人がコードを見たときに分かりやすい名前にする」ことを意識して頂ければと思います。
 
 

クイズ

ここまでの確認用に変数名のクイズを用意しました。

変数名として間違っているものを選んでみてください。

  1. $1name
  2. $name1
  3. $my name
  4. $my_name
  5. $名前
  6. $my*name

 
 
 
ヒント



 
 
 

ヒント:間違っているのは3つです。

 
 

答え



 
 
 

答えは「①, ③, ⑥」です。

① は先頭に数字がついています。
③ はスペース(空白)が入っています。
⑥ はアンダースコア以外の記号「*」が入っています。

⑤ の日本語を使った変数名を使うことはお勧めしませんが、正しい変数名です。
 
 

日付を変数にする

最後に、前回 test.php に書いた現在時刻を変数にしてみましょう。

<?php
date_default_timezone_set('Asia/Tokyo');
$now= date('Y年n月j日 H時i分s秒');
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>HTMLの基本構造</title>
</head>
<body>
<p>現在時刻は【<?= $now; ?>】です。</p>
</body>
</html>

 

HTML に直接 date(‘Y年n月j日 H時i分s秒’) を書くよりもコードがすっきりしましたね。

変数を使うことでコードを読みやすくすることもできます。
 
 

まとめ

以上が「変数について」でした。

変数名の命名ルールがたくさんありましたが、現時点で全て覚える必要はありません。

$3name や $na me のように間違った変数を書いてしまってもエラーメッセージが表示されます。これからコードをどんどん書いていけば自然と身についていくので心配しないでくださいね。

プログラミングの勉強を始めると新しい知識がどんどん出てきますが、慣れることが一番なので無理に暗記する必要はありません。

覚えようとするよりも、変数名を決めるときやコードを書く時は「誰が見ても分かりやすくする」ことを常に意識してみてください。

次回は、足し算・引き算などの「四則演算」について紹介していきます。
 

ABOUT ME
Sara
Sara
「わかりやすく・シンプル」をモットーに、携帯アプリ・ウェブアプリの作り方を紹介します。 独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています🙂
独学は難しそうと感じたら

 
独学でプログラミングを勉強するのは難しそう、効率的にプログラミングを学びたいという方はオンラインスクールがオススメです。

オンラインスクールを選ぶときのポイント

  • 無料体験があること
  • 個別サポートがあること

自分にあったスタイルを見つけるために、無料体験のご利用をオススメします。(無料体験後に自分には合わないなと感じたらハッキリ断ってしまって問題ありません。)
 
個別サポートもプログラミング学習に挫折しないために重要なポイントです。エラーや困った時にすぐに個別対応をしてくれるスクールを利用して下さい。

ここでは3つのオンラインスクールを紹介します。
全て無料体験がありますので、ぜひ自分に合ったスクールを見つけてみて下さい????
 

1. TechAcademy(テックアカデミー)

オンライン完結で勉強できるスクールで、コースがとても充実しています。チャットで質問すればすぐに回答を得られるのが一番のおすすめポイントです。
オリジナルのサービスやアプリの開発もサポートしてくれるので、開発したいものが決まっている人にもオススメです。

無料体験はこちら

2. CodeCamp(コードキャンプ)

一対一で受講できる個別指導のプログラミングスクールです。
Webデザイン・Webサービス開発・アプリ開発などを幅広く学習することができます。
マンツーマンなので自分のペースで学習できて、質問もその都度できるのがメリットです。

無料体験レッスンはこちら

3. Treehouse

英語でも良い、英語とプログラミングを同時に勉強したいという方は Treehouse がオススメです。月25ドルで始めることができて、たくさんのプログラミング言語を学ぶことができます。
個別サポートはありませんが、掲示板が充実しています。ほとんどの場合、質問してから30分程度で回答を得ることができます。

7日間の無料体験はこちら

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA