-
PHPのスーパーグローバル変数とは?一覧と使い方を徹底解説
はじめにPHPでは、ユーザーが定義する変数のほかに、あらかじめシステム側で用意されている定義済み変数が存在します。これらはスーパーグローバル(superglobals)と呼ばれ、最大の特徴はglobalキーワードを宣言しなくても、関数やメソッド内のどこからでも常にアクセスできる点です。スーパーグローバルはPHP 4.1.0以降で利用可能となっており、Webアプリケーション開発においてフォーム処理やセッション管理などを行う際に欠かせない存在です。本記事では、PHPで利用できる主なスーパーグローバル変数の一覧と、それぞれの役割をわかりやすく解説します。スーパーグローバル変数の一覧$GLOBALSグ
-
PHPのリファレンス(参照)とは?基本から実例までわかりやすく解説
はじめに:PHPのリファレンスとはPHPにおけるリファレンス(参照)とは、同じ変数の内容に異なる名前でアクセスできるようにする仕組みです。C/C++のポインタとは性質が異なり、リファレンスに対して算術演算を行うことはできません。C/C++のポインタが実際のメモリアドレスを指すのに対し、PHPのリファレンスはシンボルテーブル上のエイリアス(別名)にすぎません。PHPでは変数名と変数の内容は別個のものとして扱われるため、同じ内容に対して複数の名前を付けることが可能です。リファレンス変数を作成するには、元の変数に&記号を付けます。たとえば$b=&$aと書くと、「$bは$aのリファレン
-
PHPの参照渡しとは?値渡しとの違いを実例付きで解説
はじめに PHPでは、関数へ引数を渡す際に「値渡し」と「参照渡し」の2つの方法があります。デフォルトは値渡しで、実際の引数の値が仮引数にコピーされ、関数内ではローカル変数として扱われます。そのため、関数内で仮引数を変更しても、呼び出し元の変数の値は変わりません。 一方、参照渡しの場合、仮引数は呼び出し元の変数への参照となるため、関数内での変更がそのまま元の変数に反映されます。この仕組みにより、グローバルスコープのデータを間接的に操作できるほか、「関数から返せる値は1つだけ」という制約も回避できます。 値渡し(Pass by Value) 次の例では、2つの変数をswap()関数に渡しています
-
【PHP】関数やメソッドで参照を返す方法 ― リファレンス返しの基本と実例
はじめに PHPでは、関数が参照(リファレンス)を返すように定義することができます。これは、呼び出し元のどの変数に参照を結び付けるべきかを制御したい場合に役立ちます。参照を返す関数を定義するには、関数名の先頭に & 記号を付けます。さらに、呼び出し側でも参照として受け取るために、代入時に & を指定する必要があります。 参照を返す関数のサンプル 次の例では、myfunction() が参照を返すように定義されています。関数内には static 変数が用意されており、その参照が返されてグローバル変数に代入されます。関数の外でこの変数に新しい値を代入すると、関数内の static
-
PHPのリファレンス(参照)入門:unset()してもグローバル変数は削除されない
はじめに PHPの多くの構文は、内部的にリファレンス(参照)の仕組みを利用して実装されています。本記事では、その中でも特に重要な挙動として、関数内でグローバル変数へのリファレンスをunset()で解除しても、グローバルスコープ上の元の変数は削除されないという点について解説します。 サンプルコード <?php $var1 = 'Hello World'; function myfunction(){ global $var1; $var2 =&$var1;
-
PHPの参照(リファレンス)を解除する方法:unset()関数とNULL代入の違いを解説
はじめにPHPでは、unset()関数を使うことで、変数とその内容との間の参照(リファレンス)の結びつきを解除できます。ここで重要なのは、unset()は変数が指していた内容そのものを破棄するわけではないという点です。unset()が行うのは、あくまで「変数と内容をつなぐリンクを切断する」ことだけです。そのため、同じ内容を参照している他の変数やデータ自体は影響を受けることなく残ります。unset()で参照を解除する例以下の例では、まず変数$aへの参照として$bを作成し、その後unset()によって$bの参照を解除しています。<?php $a = 10; $b = &$a; ech
-
PHPのincludeステートメント徹底解説!ファイル読み込みの基本から応用まで
はじめにPHPでは、include文を使うことで、あるファイル内のコードを別のPHPスクリプトから利用できるようになります。この機能により、関数やクラスを一度だけ記述しておき、必要な場所で何度でも呼び出せるため、モジュール化された効率的なプログラム開発が可能になります。include文は、デフォルトでは現在のフォルダ内を検索し、そこで見つからない場合はphp.iniのinclude_path設定で指定されたディレクトリも順に探します。もし対象のファイルが現在のフォルダにもinclude_pathのディレクトリにも存在しない場合、PHPパーサーはE_WARNING(警告)を発行しますが、呼び出し
-
PHPのinclude_onceステートメントとは?使い方と動作を実例で解説
はじめにPHPのinclude_onceステートメントは、includeステートメントと同様に、あるファイル内に記述されたスクリプトを別のファイルへ読み込んで評価します。両者の違いは、include_onceには「同じファイルを二重に読み込まない」という防止機能がある点です。名前のとおり、たとえinclude命令を何度発行しても、ファイルが読み込まれるのは最初の1回だけです。include_onceは、グローバル変数の初期化やライブラリの読み込みなど、アプリケーションの実行開始時に一度だけ行いたい処理によく使われます。それ以外の動作は、includeステートメントとまったく同じです。inclu
-
PHPのrequire文とは?includeとの違いと使い方を実例で解説
はじめにPHPのrequire文は、include文とほぼ同じ働きをする構文です。しかし、両者には重要な違いが一つあります。require文の場合、指定したファイルが見つからないと致命的なエラー(Fatal Error)が発生し、現在のスクリプトの実行がその場で停止します。一方、include文ではファイルが見つからなかった場合でも警告(Warning)が出力されるだけで、スクリプトの実行は続行されます。PHPパーサーは、まずカレントディレクトリ内で対象ファイルを探し、そこで見つからなければphp.iniのinclude_path設定で指定されたディレクトリも検索します。この検索の流れはinc
-
PHPのrequire_onceステートメントとは?使い方とrequireとの違いを解説
はじめにPHPのrequire_onceステートメントは、requireステートメントとほぼ同じ働きをします。唯一の違いは、すでに一度読み込まれたファイルは二度と読み込まれないという点です。なお、includeやrequireで読み込まれたファイルについても、その後にrequire_onceを使っても再度読み込まれることはありません。それ以外の動作は、すべてrequireステートメントと同一です。 require_onceの基本的な使い方次の例では、メインのPHPスクリプトからtest.phpを読み込んでいます。 コード例<?php echo inside main script\n;
-
PHPのreturnステートメント(return文)の使い方を徹底解説
はじめにPHPにおけるreturn文の目的は、プログラムの実行制御を呼び出し元の環境へ返すことです。returnが実行されると、関数やモジュールを呼び出していた式の次から処理が再開されます。return文が関数の内部で実行されると、その時点で現在の関数の実行は終了し、制御は呼び出し元の環境へ引き渡されます。また、return文には式をオプションとして指定できます。この場合、制御とともにその式の評価結果(値)も呼び出し元へ返されます。includeなどで読み込まれたスクリプト内でreturn文に到達すると、そのスクリプトの実行は直ちに終了し、制御はインクルード元のスクリプトへ戻ります。一方、トッ
-
PHPの無名関数(クロージャ・ラムダ)の基本と実践的な使い方
はじめに:無名関数とは?無名関数(匿名関数)とは、開発者が名前を付けずに定義する関数のことです。このような関数はクロージャやラムダ関数とも呼ばれます。一度だけ使いたい処理がある場合や、その場限りの小さなロジックを記述したい場合に非常に便利です。特に「クロージャ」と呼ばれる場合、それは定義された環境(スコープ外の変数)を閉じ込めて保持できる無名関数を指します。外部の変数にアクセスする際には use キーワードを指定します。無名関数の最も一般的な用途は、インラインでコールバック関数を作成することです。基本構文$var = function ($arg1, $arg2) { return $val;
-
PHP関数の引数徹底解説:値渡し・参照渡し・型宣言の基本
はじめにPHPの関数は、呼び出し元のスクリプトから「引数(ひきすう)」という形で入力を受け取るように定義できます。引数は、関数名の後ろにある括弧( ) の中にカンマ区切りのリストとして記述します。なお、関数を呼び出す際には、定義された引数と同じ数の値を渡す必要がある点に注意しましょう。PHPでは、次のような引数の渡し方がサポートされています。値渡し(デフォルトの動作)参照渡しデフォルト値を持つ引数可変長引数(個数が不定の引数)引数を受け取る関数(値渡し)以下の例では、2つの仮引数を持つ関数を定義しています。PHPではデフォルトで引数は「値渡し」されるため、関数の引数はその関数内でのみ有効なロー
-
【PHP入門】戻り値(return文)の基本から参照返し・型宣言まで徹底解説
はじめにPHPの関数では、処理の最後に return 文を記述できますが、これは必須ではありません。関数が呼び出されると、本体ブロック内の処理が完了した時点で、最後の文が return であるかどうかにかかわらず、プログラムの制御は呼び出し元へ戻ります。return 文がない場合には NULL が返され、return 文に式が指定されていれば、その式の評価結果が返り値となります。なお、関数が直接返せる値は1つだけですが、その値はスカラー型・配列・オブジェクトのいずれでも構いません。返された値は変数に代入して、その後の処理に活用できます。 return文を使った基本的な関数次の例では、引数とし
-
PHPのユーザー定義関数を完全解説!基本構文から引数・戻り値・再帰関数まで
はじめにPHPには、数学関数、文字列操作関数、日付関数、配列関数など、非常に多くの組み込み関数が用意されています。しかし、開発者自身が特定の要件に合わせて独自の関数を定義することも可能です。このように自分で作成する関数を「ユーザー定義関数」と呼びます。関数とは、特定のタスクを実行するためにまとめられた、再利用可能な処理ブロックのことです。関数は function キーワードを使って定義し、名前は英字またはアンダースコア(_)で始まる必要があります。一度定義した関数は、プログラム内のどこからでも何度でも呼び出すことができます。基本的な構文// 関数を定義する function myfunctio
-
PHPの可変関数(Variable Functions)とは?基本からクラスメソッドへの応用まで解説
はじめにPHPでは、変数名の後ろに括弧(引数の有無は問いません)を付けると、PHPパーサーはその変数の値と同じ名前の関数を探し出し、実行しようとします。このような関数の呼び出し方は「可変関数(Variable Functions)」と呼ばれます。この機能は、コールバック処理や関数テーブルなどを実装する際に非常に便利です。ただし、include、require、echo などの言語構造(言語キーワード)に対して可変関数の形式を使うことはできません。そのような場合は、関数でラップするなどの回避策を取る必要があります。可変関数の基本的な例次の例では、変数の値が関数名と一致しています。変数の後ろに括弧
-
PHPの定数とは?define()関数とマジック定数の使い方を徹底解説
はじめに定数とは、$x = 10 や $name = XYZ のような代入式において、リテラルとして表される値のことです。この例では、10 が数値定数、XYZ が文字列定数であり、それぞれ変数に代入されています。PHPでは、define() 関数を使うことで、ユーザーが独自に名前を付けた識別子で定数を定義することができます。変数と異なり、一度定義した定数の値はスクリプト実行中に変更できない点が特徴です。構文define ( string $name , mixed $value [, bool $case_insensitive = FALSE ] ) : boolパラメータNo.パラメータと
-
PHPのcontinue文とは?ループ処理をスキップする使い方を実例付きで解説
はじめに continue 文は、PHPのループ制御キーワードのひとつです。プログラムの実行フローがループ内で continue に到達すると、現在の反復(イテレーション)における残りの処理がすべてスキップされ、次の反復へと移ります。continue 文は while、do-while、for、foreach のいずれのループ構造でも使用できます。 条件分岐と組み合わせることで、「特定の条件に合致するデータだけ処理を飛ばしたい」という場面で非常に便利な制御構文です。 基本構文 while (expr) { .. &nbs
-
PHPのif文・elseif文とは?条件分岐の基本と使い方を徹底解説
はじめに条件に応じて1つ以上の文を実行する「条件分岐」は、あらゆるプログラミング言語において最も重要な機能の一つです。PHPでは、if、else、elseifといったステートメントを使うことで、柔軟な条件分岐を実現できます。まずはif文の基本的な使い方から見ていきましょう。if文の基本構文if (expression) statement;ifキーワードの後に記述する式は論理式で、評価結果はTRUE(真)またはFALSE(偽)のいずれかになります。式がTRUEと評価されれば次の行の文が実行され、FALSEであればその文は無視されます。条件がTRU
-
PHPのforeachループ完全ガイド!配列操作の基本構文と実践サンプル集
はじめに PHPが提供するループ構文のひとつであるforeach文について解説します。while文・do while文・for文などの他のループ構文が、条件式やカウンタにもとづいた繰り返し処理を行うのに対し、foreach文は配列の要素を先頭から順に処理することに特化した構文で、配列操作の場面で非常に便利です。 基本構文 foreach (array_expression as $value) statement foreach (array_expression as $key => $value)