© 2023 MNET LLC. All Rights Reserved.

僕的PHP備忘録:変数のちょっと変わった仕組み

山下 生真

僕的PHP備忘録第5弾。前回は変数を紹介しましたが変数の中にもちょっと変わった仕組みが存在します。これを分かっていないと思わぬエラーに陥る可能性があるのでしっかりと覚えておきましょう

変数のスコープ

スコープとは’範囲’のことを指します。よって変数のスコープは変数の範囲、変数を利用できる範囲という意味になります。変数を利用できる範囲とは何でしょうか?

そもそも変数というのは使える範囲が決まっております。スコープにはローカルスコープ、グローバルスコープがありそれぞれの変数をローカル変数、グローバル変数と呼びます。
後ほど紹介する関数というものを使用するとスコープを意識してコーディングをしないと思わぬエラーやバグが発生してしまいます。

<?php

$global = 'これはグローバル変数です';

function example() {

  $local = 'これはローカル変数です';
  echo $global;
  echo $local;
}

example();

echo $local; //これはエラーになります

$globalはグローバル変数、$localはローカル変数、function example() はクラス定義になります。

クラス内で定義された変数はローカル変数と呼ばれ定義されたクラス内でしか使用できません。
よってクラス外で使用すると変数が定義されていないというエラーになります。
一方グローバル変数はクラスの中でもクラスの外でも使用することができます。
ですので意図しない変数の書き換えなどに注意しなければいけません。

スーパーグローバル変数

自分で定義する変数以外にもPHPが事前に設定している変数、スーパーグローバル変数というのもあります。【$_GET】【$_POST】【$_SESSION】などスコープを気にせず使用でき、これを使用することに検索機能やフォーム機能などの実装に役立ちます。

まとめ

変数を定義するときは「今定義している変数はどこまでスコープが効くか?」を意識することにより思わぬバグを減らしたり、ソースコードが読みやすくなりその後の運用がやりやすくなるなど得られるメリットは大きいです。

スコープを意識しバグを減らして素敵なプログラミングライフを送りましょう!

山下 生真

役員

建築家を志し京都の大学を卒業。様々な業種を経て、IT業界に心惹かれ、一心発起し、プログラミングスクールに業務の傍ら通う。趣味のYouTubeの動画編集・撮影活動で現CEOと出会う。幼少期からの夢であった”魔法使いになってみんなの役に立つ”実現の為、IT技術を駆使し、世の中の役に立つことを目標に起業。座右の銘は”野心・向上心”。

HOT TOPICS
人気の記事

全て見る