PHPでは関数を作成することができます。関数を定義しておけば、その後は関数を呼び出すだけで、関数内に記述された処理をまとめて呼び出すことができます。プログラミングでは必須の技術です。
今回は、PHP にて関数を定義する方法とその呼び出し方について紹介します。
関数宣言と呼び出し
function 関数名(引数) { 処理 }という形を用いて関数を定義します。また、関数を呼び出す際は、関数名();という形を用いて関数を呼び出します。
PHP
function outPut() {
echo 'こんにちは';
};
//outPut()関数の定義
outPut();
//outPut()関数の呼び出し出力結果
PHP
こんにちは関数のスコープ
関数スコープ
スコープとは、ある変数や関数が特定の名前で参照される範囲のことを指します。functionの中に置かれた変数や関数は、その内部でしか変更、参照をすることはできません。
PHP
function funcA () {
function funcB() {
echo 'funcB';
}
funcB();
}
funcB();出力結果
PHP
PHP Fatal error: Uncaught Error: Call to undefined function funcB()
// 関数FuncBは定義されておりません。例題
以下コードの出力値はどれか
PHP
function hello () {
echo 'Hello';
function greeting() {
echo 'こんにちは!';
}
greeting();
}
hello();- ReferenceError: greeting is not defined
- Hello こんにちは!
- ReferenceError: hello is not defined
- こんにちは! Hello
回答
2. Hello こんにちは!
hello関数を実行し、”Hello”が出力され、greetingが実行され、”こんにちは”が出力されるため。
エンジニアからのアドバイス
B060 変数の種類と有効範囲 や今回の「関数のスコープ」で学んだ通り、関数はローカルスコープです。つまり、関数内で変数の値を変えても、関数の外側と値を共有できません。
「関数の外側から値を受け取って、関数内の処理をしたあと、その結果の値を返したい」と考えているときには「呼び出し元から受け取る値」「呼び出し元に返す値」を渡してあげる必要があります。
こういった場合は、関数の宣言で必要な情報は以下となります。
- 呼び出し元から受け取る値
- 関数内で行う処理
- 呼び出し元に返す値
プログラミングでは「呼び出し元から受け取る値」「呼び出し元に返す値」を以下の名前で呼んでいます。
呼び出し元から受け取る値 = 引数
呼び出し元に返す値 = 戻り値
PHP
function outPut($hello) {
$say = 'say ' . $hello;
return $say;
};
//outPut()関数の定義( $hello = 引数, return $say = 戻り値 )
echo (outPut('こんにちは') );
//outPut()関数の呼び出し「引数」「戻り値」については次ページ以降にて説明しています。
