PHPの関数(function)の基本を完全ガイド!初心者でもわかる使い方
新人
「PHPの関数って何ですか?どうやって使うんでしょうか?」
先輩
「関数は、一連の処理をまとめて、何度でも使えるようにする仕組みです。PHPには組み込み関数もありますが、自分で関数を作ることもできますよ。」
新人
「なるほど、自分で関数を作ることもできるんですね!具体的にどうやって書くんですか?」
先輩
「では、PHPの関数の基本的な使い方を解説していきますね。」
1. PHPの関数とは?
関数とは、決まった処理をまとめて定義し、必要なときに呼び出して使う仕組みです。
例えば、「こんにちは!」と表示する処理を関数にまとめると、どこでも簡単に実行できます。
2. 関数を使うメリット
関数を使うことで、以下のようなメリットがあります。
- コードの再利用ができる(同じ処理を何度も書かなくて済む)
- コードの可読性が向上する(処理が整理されて読みやすくなる)
- 変更が簡単になる(関数内のコードを修正するだけで、全体に反映される)
3. PHPの関数の基本的な書き方
PHPで関数を定義するときは、function
キーワードを使います。
以下のコードは、簡単な関数の例です。
function sayHello() {
echo "こんにちは!";
}
sayHello();
このコードを実行すると、以下のように表示されます。
こんにちは!
関数の定義と呼び出し
関数を作るときは、次のように書きます。
function 関数名() { 処理 }
で関数を定義する- 関数を実行するには
関数名()
を書く
関数の動作を確認しよう
関数を使うと、同じ処理を何度でも呼び出せます。
function sayHello() {
echo "こんにちは!";
}
sayHello();
sayHello();
このコードを実行すると、以下のように表示されます。
こんにちは!
こんにちは!
次のセクションでは、関数に値(引数)を渡して処理をカスタマイズする方法を解説します。
4. 関数に引数を渡す方法
関数に値を渡すことで、処理をより柔軟にできます。渡す値のことを「引数」と呼びます。
引数を使った関数
例えば、名前を引数として受け取り、あいさつをする関数を作ってみましょう。
function greet($name) {
echo "こんにちは、" . $name . "さん!";
}
greet("太郎");
greet("花子");
このコードを実行すると、次のように表示されます。
こんにちは、太郎さん!
こんにちは、花子さん!
デフォルト値を設定する
引数が渡されなかった場合のために、デフォルト値を設定できます。
function greet($name = "ゲスト") {
echo "こんにちは、" . $name . "さん!";
}
greet();
greet("太郎");
このコードを実行すると、次のようになります。
こんにちは、ゲストさん!
こんにちは、太郎さん!
5. 関数の戻り値
関数は計算結果を返すこともできます。その場合、return
を使います。
戻り値を持つ関数
例えば、2つの数を足し算して、その結果を返す関数を作ってみましょう。
function add($a, $b) {
return $a + $b;
}
$result = add(3, 5);
echo "3 + 5 = " . $result;
このコードを実行すると、次のように表示されます。
3 + 5 = 8
戻り値を使うメリット
戻り値を使うことで、関数の結果を変数に保存したり、他の関数に渡したりできます。
function getMessage() {
return "おはようございます!";
}
$message = getMessage();
echo $message;
このコードを実行すると、次のように表示されます。
おはようございます!
6. 変数のスコープ(ローカル変数とグローバル変数)
PHPでは、変数の使える範囲(スコープ)が決まっています。主に「ローカル変数」と「グローバル変数」の2種類があります。
ローカル変数とは?
関数内で宣言された変数は、その関数の中でのみ使えます。
function test() {
$message = "関数内の変数です";
echo $message;
}
test();
echo $message; // エラーになる
このコードでは、関数の外で$message
を使おうとするとエラーになります。
グローバル変数とは?
関数の外で宣言された変数は、関数の中ではそのまま使えません。
$globalMessage = "グローバル変数です";
function test() {
echo $globalMessage; // エラーになる
}
test();
関数の中でグローバル変数を使うには、global
キーワードを使います。
$globalMessage = "グローバル変数です";
function test() {
global $globalMessage;
echo $globalMessage;
}
test();
このコードを実行すると、次のようになります。
グローバル変数です
スーパーグローバル変数
PHPには、どこからでも使える特殊な変数「スーパーグローバル変数」があります。
例えば、$_GET
や$_POST
は、フォームの入力値を取得するときに使います。
echo $_SERVER['PHP_SELF'];
このコードを実行すると、現在のスクリプトのパスが表示されます。
7. PHPの組み込み関数とユーザー定義関数の違い
PHPには、あらかじめ用意されている「組み込み関数」と、自分で作る「ユーザー定義関数」の2種類があります。
組み込み関数とは?
組み込み関数は、PHPが最初から用意している関数です。例えば、文字列の長さを調べるstrlen()
や、配列の要素数を取得するcount()
などがあります。
$text = "Hello, PHP!";
echo strlen($text);
このコードを実行すると、以下のように表示されます。
12
ユーザー定義関数とは?
ユーザー定義関数は、開発者が自由に作成できる関数です。例えば、数値を2倍にする関数を作ってみましょう。
function double($num) {
return $num * 2;
}
echo double(5);
このコードを実行すると、以下のようになります。
10
組み込み関数とユーザー定義関数を適切に使い分けることで、効率的にプログラムを書くことができます。
8. 再帰関数(関数の中で自分自身を呼び出す)
再帰関数とは、関数の中で自分自身を呼び出す関数のことです。
再帰関数の基本
例えば、1から指定した数までの合計を計算する関数を作ることができます。
function sumUp($num) {
if ($num === 1) {
return 1;
}
return $num + sumUp($num - 1);
}
echo sumUp(5);
このコードを実行すると、次のようになります。
15
再帰関数を使った階乗の計算
階乗(n!
)を計算する関数を作ることもできます。
function factorial($n) {
if ($n === 1) {
return 1;
}
return $n * factorial($n - 1);
}
echo factorial(5);
このコードを実行すると、以下のようになります。
120
再帰関数は便利ですが、深すぎる再帰は処理の負担が大きくなるため、慎重に使う必要があります。
9. 実践!PHP関数を使った簡単なプログラム
これまで学んだ関数を活用して、実践的なプログラムを作ってみましょう。
ユーザーの年齢を計算する関数
西暦の生まれ年を入力すると、現在の年齢を計算する関数を作ります。
function calculateAge($birthYear) {
$currentYear = date("Y");
return $currentYear - $birthYear;
}
echo "あなたの年齢は " . calculateAge(1990) . " 歳です。";
このコードを実行すると、以下のように表示されます。(2025年の場合)
あなたの年齢は 35 歳です。
ランダムなパスワードを生成する関数
ランダムな英数字のパスワードを生成する関数を作成します。
function generatePassword($length = 8) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$password = "";
for ($i = 0; $i < $length; $i++) {
$password .= $chars[random_int(0, strlen($chars) - 1)];
}
return $password;
}
echo generatePassword(10);
このコードを実行すると、ランダムな10文字のパスワードが生成されます。
簡単なWebフォームの処理
PHP関数を使って、ユーザーの入力を処理するフォームを作成します。
<form method="post">
<input type="text" name="username" placeholder="名前を入力してください">
<button type="submit">送信</button>
</form>
PHPで送信されたデータを処理するコードを作成します。
function processForm() {
if ($_SERVER["REQUEST_METHOD"] === "POST" && !empty($_POST["username"])) {
$name = htmlspecialchars($_POST["username"], ENT_QUOTES, 'UTF-8');
echo "こんにちは、" . $name . " さん!";
}
}
processForm();
このコードを実行すると、フォームに入力した名前が表示されます。
このように、関数を活用することで、効率的で読みやすいPHPプログラムを作成できます。