PHPにおけるユーザ定義関数
はじめに
静止したウェブサイトはなんだか退屈。
っていうか『あれ?動いていない?壊れてる?』と思われちゃいます。
だから、利用する人が『このサービス、生きてる』と感じるには、ウェブサイトが躍動的に動くことが大切ですね。
『生きてるサービス』を実現するために、PHPは特定のタスクを実行する関数を作り込むこと(「定義する」とも言う)ができます。これが「ユーザ定義関数」です。
ユーザ定義関数とは?
コンピューターにあるタスクを実行させたいので、プログラマーは「タスクを実行しろ」とタスク実行のやり方を順番通り書いて作り込んだ関数です。「プログラマーが定義する」ともいいます。このプログラムの塊(かたまり)をユーザー定義関数と言います。
コンピューターはユーザー定義関数を命令と解釈して実行しようとします。うまく動けばサービスを提供できます。
サービス実現のため、同じ動きや似た動きをするプログラムをいっぱい書くんじゃなくて、1か所にまとめて書いて、その1つのプログラムの塊を読み込んであちこちで実行させるのが賢いよね。プログラミングの仕事も減らせる。
こうして、コードの再利用を実現して、プログラム全体の可読性を向上させ、修正や改修などのメンテナンス性が向上します。
これがプログラミングの仕事であり、プログラマーの腕の見せどころです。
ユーザー定義関数の書き方
関数を定義する
ユーザ定義関数は、function
キーワードを使用して定義します。
関数名はアルファベットで始まる任意の文字列でよいのですが、原則として、どんな振る舞いをするのかを考えて命名すると良いでしょう。
function sayHello() {
echo "Hello, World!";
}
引数を使用する
ユーザ定義関数の主目的は、似た動きを一箇所にまとめてコードのメンテナンス性を向上させることです。ですから、基本動作は同じでも、違う箇所を引数で渡して処理させるという構造を取ります。これにより、関数に情報を渡して、その情報に基づいて処理を行うことができます。
function sayHello($name) {
echo "Hello, World " . $name . "!";
}
ここでは$name
で「名前」を渡す構造になっています。実際の開発現場では、もっと複雑な値を渡したり、プログラムそのものを渡すなどして利用しています。
戻り値
サービスは単一のプログラムの塊で処理が終わることはありません。プログラムを実行したら、次のプログラムを実行させて、こうして次々に処理が進んでダイナミックな動きを演出するプログラミングが可能になります。
そのため return
文を使用して実現します。
function sayHello($name) {
$moji = "Hello, World " . $name . "!";
return $moji;
}
このプログラムの塊に「名前」を渡したことで、「Hello, World (好きな人のなまえ)!」という文字列を生成し、返却します。こうしたプログラムの繋がりが、プログラミングです。
ユーザ定義関数の利点
- コードの再利用性: 同じコードを何度も書く代わりに、関数を一度定義して必要なときに呼び出すことができます。
- 可読性の向上: 関数名を適切に選ぶことで、コードの意図が明確になり、読みやすくなります。
- メンテナンスの容易さ: コードの特定部分を変更する必要がある場合、その部分が関数内にあれば、その関数だけを修正すればよく、全体の修正が容易になります。
まとめ
ユーザ定義関数は、プログラミングにおいてとても重要な概念です。関数を効果的に使用することで、コード管理が用意になり、プロジェクトの開発効率が大幅に向上します。この概念をベースに、クラスの管理やクラス毎の関数、プラグインやオニオンアーキテクチャーなどの概念へと理解を深め広げていくことになりますので、まずはこの基本概念を理解するように取り組みましょう。