PHPの関数の引数と戻り値を完全ガイド!初心者でもわかる基本の使い方
新人
「PHPで繰り返し同じ処理をするとき、毎回同じコードを書くのが面倒です。」
先輩
「そんなときは関数を使うと便利だよ。関数を使えば、1回作った処理を何度でも呼び出せるんだ。」
新人
「関数って何ですか?どうやって作るんですか?」
先輩
「じゃあ、PHPの関数について基本から解説していこう!」
1. PHPの関数とは?
PHPの関数は、特定の処理をまとめて定義し、必要なときに呼び出せる仕組みです。関数を使うことで、コードの再利用ができ、プログラムがシンプルになります。
PHPではfunction
キーワードを使って関数を定義します。例えば、次のように関数を作れます。
function sayHello() {
echo "こんにちは!";
}
sayHello(); // 関数の呼び出し
上記の例では、sayHello()
という関数を作り、その中で「こんにちは!」を出力しています。関数を呼び出すと、その処理が実行されます。
2. 関数の引数とは?
関数の引数とは、関数に渡す値のことです。引数を使うことで、関数の処理をカスタマイズできます。
例えば、名前を受け取って挨拶する関数を作ってみましょう。
function greet($name) {
echo "こんにちは、" . $name . "さん!";
}
greet("太郎");
greet("花子");
この関数では、引数$name
を受け取り、その名前を使って挨拶しています。関数を呼び出すと、渡した名前ごとに異なるメッセージが表示されます。
3. 関数の引数を使うメリット
引数を使うことで、関数の処理を柔軟に変更できます。例えば、複数の数値を計算する関数を作ることができます。
function addNumbers($a, $b) {
return $a + $b;
}
$result = addNumbers(3, 5);
echo "合計: " . $result;
この関数は、2つの数値を引数として受け取り、それらを足し算して結果を返します。関数を使うことで、異なる数値でも同じロジックで計算ができます。
4. 関数の引数の使い方
関数は、1つだけでなく複数の引数を受け取ることができます。また、引数にデフォルト値を設定することも可能です。
複数の引数を使う場合
例えば、2つの数値を受け取り、それらを掛け算する関数を作ってみましょう。
function multiply($a, $b) {
return $a * $b;
}
$result1 = multiply(4, 5);
$result2 = multiply(7, 3);
echo "4 × 5 = " . $result1;
echo "7 × 3 = " . $result2;
このように、引数を複数指定することで、関数の処理をより柔軟にできます。
引数のデフォルト値を設定する
関数の引数には、デフォルト値を設定することもできます。デフォルト値を設定すると、関数を呼び出すときに引数を省略してもエラーになりません。
function greetUser($name = "ゲスト") {
echo "こんにちは、" . $name . "さん!";
}
greetUser("太郎"); // こんにちは、太郎さん!
greetUser(); // こんにちは、ゲストさん!
この例では、$name
のデフォルト値を"ゲスト"
にしています。そのため、引数を省略すると「こんにちは、ゲストさん!」と表示されます。
5. 関数の戻り値とは?
関数の戻り値とは、関数が処理した結果を返す値のことです。return
を使うことで、関数の処理結果を外部に返すことができます。
return を使って値を返す
例えば、2つの数値を足し算し、その結果を返す関数を作ってみます。
function sum($a, $b) {
return $a + $b;
}
$result = sum(10, 20);
echo "合計: " . $result;
この関数では、引数として受け取った数値を足し算し、その結果をreturn
で返しています。戻り値があることで、結果を変数に代入したり、他の処理に利用できます。
6. 戻り値の活用例
戻り値を使うことで、計算結果を再利用したり、文字列を加工して返すことができます。
計算結果を戻す
例えば、商品の合計金額を計算する関数を作ってみましょう。
function calculateTotal($price, $quantity) {
return $price * $quantity;
}
$total = calculateTotal(1200, 3);
echo "合計金額: " . $total . "円";
この関数では、価格と数量を掛け算して合計金額を返しています。戻り値があることで、結果を他の処理に活用できます。
文字列を加工して返す
次に、ユーザーの名前を受け取って、フォーマットを統一する関数を作ります。
function formatName($firstName, $lastName) {
return ucfirst(strtolower($lastName)) . " " . ucfirst(strtolower($firstName));
}
$formattedName = formatName("taro", "YAMADA");
echo "整形後の名前: " . $formattedName;
この関数では、受け取った名前をすべて小文字に変換し、先頭の文字だけ大文字にすることで、フォーマットを統一しています。
7. 関数の引数と戻り値を組み合わせる
関数の引数と戻り値を組み合わせることで、計算処理を簡潔にまとめることができます。
計算処理を関数で作る
例えば、商品の税込み価格を計算する関数を作ってみましょう。
function calculateTaxIncludedPrice($price, $taxRate = 0.1) {
return $price + ($price * $taxRate);
}
$price1 = calculateTaxIncludedPrice(1000);
$price2 = calculateTaxIncludedPrice(500, 0.08);
echo "1000円の商品(10%税込み): " . $price1 . "円";
echo "500円の商品(8%税込み): " . $price2 . "円";
この関数では、商品価格と税率を引数として受け取り、税込み価格を計算して返しています。デフォルトの税率を10%
に設定し、引数を省略した場合も対応できるようにしています。
8. 関数の応用
関数では、数値や文字列だけでなく、配列を引数に渡したり、戻り値として返したりすることもできます。
配列を引数に渡す
例えば、配列の中の数値をすべて足し算する関数を作ってみましょう。
function sumArray($numbers) {
$sum = 0;
foreach ($numbers as $num) {
$sum += $num;
}
return $sum;
}
$values = [10, 20, 30, 40];
$total = sumArray($values);
echo "配列の合計: " . $total;
この関数は、配列を引数として受け取り、その中の数値を合計して返します。
配列を戻り値として返す
次に、配列を戻り値として返す関数を作ってみます。たとえば、文字列を分割する関数を作りましょう。
function splitString($text) {
return explode(" ", $text);
}
$words = splitString("PHP 関数 戻り値");
print_r($words);
この関数では、スペース区切りで文字列を分割し、配列として返しています。
9. 実践!関数を使ったシンプルなプログラム
最後に、ユーザーの入力を受け取って加工するプログラムを作りましょう。
ユーザーが入力した文字を加工する
たとえば、ユーザーが入力した名前を整形して、正しいフォーマットで出力する関数を作ります。
function formatUserInput($input) {
return ucfirst(strtolower(trim($input)));
}
$userInput = " TARO ";
$formattedName = formatUserInput($userInput);
echo "整形後の名前: " . $formattedName;
この関数では、trim()
で余分な空白を取り除き、strtolower()
で小文字に変換し、ucfirst()
で先頭の文字を大文字にしています。
入力値を計算に利用する
次に、ユーザーが入力した数値を使って四則演算を行う関数を作ります。
function calculate($num1, $num2, $operator) {
switch ($operator) {
case "+":
return $num1 + $num2;
case "-":
return $num1 - $num2;
case "*":
return $num1 * $num2;
case "/":
return $num2 != 0 ? $num1 / $num2 : "エラー: 0で割ることはできません";
default:
return "エラー: 無効な演算子です";
}
}
echo "結果: " . calculate(10, 5, "+");
この関数では、演算子に応じて計算を行い、結果を返します。