こんにちは!
ゆうです!
今回はプログラミングにおける変数について
PHPのサンプルコードを交えて お伝えします。
変数とは
変数は、「値をしまっておく箱」のようなものです。
1度しまった値を別のところで取り出したり、
新しい値を代入して再利用したりします。
PHPでの変数の宣言(変数の作り方)は、
$ をつけます。
$name = 'chan-toku';
echo $name; // 'chan-toku' と表示される
$num = 1;
$num = $num + 1;
echo $num; // 2と表示される
変数のスコープ
変数のスコープは、
その変数を扱える範囲、呼び出せる範囲のことです。
クラスや関数内で定義する際の「ローカルスコープ」と、
どこからでも呼び出せる「グローバルスコープ」があります。
グローバルスコープ
$days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
foreach ($days as $day) {
if ($day === 'Sat') {
$message = '今日は土曜日!';
}
}
echo $message; // '今日は土曜日!'
制御構造のブロック内で宣言された変数も、ブロック外やファイル外から呼び出すことができます。
ローカルスコープ
$date = '12月3日';
function tomorrow() {
$date = '12月4日';
echo $date; // '12月4日'
}
echo $date; // '12月3日';
クラスや関数内で変数を宣言しても、グローバルスコープの変数には影響しません。
スーパーグローバル変数
ここまでの「ユーザーが定義し、定義後も値を書き換えられる変数」に対して、PHP実行時に自動的に定義され、スコープを問わず参照可能なスーパーグローバル変数があります。 $_SERVER, $_COOKIE, $_SESSION等々たくさんあるのですが、フォームで送信された値を受け取る時に使う$_GETの例を挙げてみます。
// フォームからGETで'name=chan-toku'を送信した時
echo $_GET['name'] // 'chan-toku'
このように、$_GETを宣言していないのに、自動で値を定義してくれます。
変数のエラー
宣言していない変数を参照しようとすると、エラーが生じます。PHPには変数があるか調べるisset()があるので、状況に応じて使います。
echo $name; // エラー
var_dump(isset($name)); // false
$article_day2 = '変数';
var_dump(isset($article_day2)); // true
if (isset($article_day2)) {
$message = '2日目の記事を投稿しました!';
}
まとめ
変数はプログラミングの基本です。
適当な名前をつけると予期せぬ上書きをしてしまったり、
スコープ(変数の有効範囲)を間違えると
変数を参照できずエラーが生じたりします。
さらに変数名のつけ方には守った方が
よいルールなどがありますが、
こちらの記事で言及してます!
ーーーーーーーーーーーーーーーーーーーーーーーーー
プログラミングの相談にのっております。
- どう勉強していいかわからない
- IT業界って実際どうなの?
- プログラミングできるようになりたい!
という方。気軽に連絡してください!
またメルマガの配信も行なっております。
- どうやって勉強したらいいのかわからない
- プログラミング未経験なんだけど、どうしたらいいの?
- 専門用語も何もわからない
- 上司に怒られてばかりの今の状況を打破したい
という方はどうぞ。
