【初心者向け】PHPの関数完全ガイド

PHP

「同じコードを何回も書くのが面倒だな…」
「プログラムがごちゃごちゃして、どこに何が書いてあるかわからない!」

そんなお悩みを解決してくれるのが、PHPの関数(function)です。

この記事では、関数の基本から実際の使い方まで、プログラミング初心者の方にもわかりやすく説明します。

スポンサーリンク

PHPの関数ってなに?

機能の説明

関数とは、よく使う処理にわかりやすい名前をつけて、何度でも使えるようにしたものです。

料理に例えると、「カレーを作る」という手順を一度覚えておけば、いつでも同じ手順でカレーが作れますよね。

プログラムでも同じで、よく使う処理を関数にしておけば、名前を呼ぶだけで その処理を実行できます。

関数の特徴

  • 同じ処理を何度でも使い回せる
  • プログラムが整理されて読みやすくなる
  • 修正するときも一箇所だけ直せばよい
  • バグが見つけやすくなる

こんなときに便利

税込価格の計算 いろんな商品で使うので、関数にしておくと便利

メールアドレスのチェック お問い合わせフォームなどで何度も使う

日付の表示 「2025年6月2日」のような形式で表示したいとき

基本的な関数の書き方

構文の説明

関数は、次のように書きます:

function 関数名() {
    // ここに実行したい処理を書く
}

関数の名前をつけるルール

  • 英数字とアンダースコア(_)が使える
  • 数字から始めてはいけない
  • 日本語は使えない
  • 他の関数と同じ名前は使えない

実際に作ってみよう

例1:あいさつをする関数

説明 「こんにちは!」と表示する関数を作ってみましょう。

コード例

<?php
function sayHello() {
    echo "こんにちは!\n";
}

// 関数を呼び出す(使う)
sayHello();
?>

実行結果

こんにちは!

解説

  • function sayHello()で関数を定義します
  • {}の中に実行したい処理を書きます
  • sayHello()で関数を呼び出します

例2:簡単な計算をする関数

説明 2つの数を足し算する関数を作ってみましょう。

コード例

<?php
function calculate() {
    $a = 5;
    $b = 3;
    $result = $a + $b;
    echo "計算結果:" . $result . "\n";
}

calculate();
?>

実行結果

計算結果:8

引数を使った関数

引数とは

引数(ひきすう)とは、関数に渡すデータのことです。

関数を「機械」だと考えてみてください。機械に材料を入れると、加工された製品が出てきますよね。引数は、その「材料」にあたります。

引数を使った関数の書き方

function 関数名($引数名) {
    // $引数名を使った処理
}

実際に使ってみよう

例1:名前を使ったあいさつ

説明 相手の名前を受け取って、その人向けのあいさつをする関数を作りましょう。

コード例

<?php
function greet($name) {
    echo "こんにちは、" . $name . "さん!\n";
}

greet("田中");
greet("佐藤");
greet("山田");
?>

実行結果

こんにちは、田中さん!
こんにちは、佐藤さん!
こんにちは、山田さん!

解説

  • $nameが引数です
  • 関数を呼ぶときに、greet("田中")のように値を渡します
  • 関数の中では、$nameにその値が入ります

例2:2つの数を足し算する

説明 2つの数を受け取って、足し算の結果を表示する関数を作りましょう。

コード例

<?php
function addNumbers($num1, $num2) {
    $result = $num1 + $num2;
    echo $num1 . " + " . $num2 . " = " . $result . "\n";
}

addNumbers(3, 5);
addNumbers(10, 20);
addNumbers(7, 13);
?>

実行結果

3 + 5 = 8
10 + 20 = 30
7 + 13 = 20

戻り値のある関数

戻り値とは

戻り値とは、関数が計算した結果を呼び出し元に返すことです。

自動販売機を例に考えてみましょう。お金を入れてボタンを押すと、飲み物が出てきますよね。お金とボタンが「引数」で、出てきた飲み物が「戻り値」です。

戻り値のある関数の書き方

function 関数名($引数名) {
    // 処理
    return 結果;
}

実際に使ってみよう

例1:足し算の結果を返す

説明 2つの数を足し算して、その結果を返す関数を作りましょう。

コード例

<?php
function add($a, $b) {
    $result = $a + $b;
    return $result;
}

$answer = add(3, 5);
echo "答えは:" . $answer . "\n";

// 直接使うこともできます
echo "10 + 15 = " . add(10, 15) . "\n";
?>

実行結果

答えは:8
10 + 15 = 25

解説

  • return $resultで計算結果を返します
  • 返された値は、変数に代入したり、直接使ったりできます

例2:税込価格を計算する

説明 商品の価格を受け取って、税込価格を計算して返す関数を作りましょう。

コード例

<?php
function calculateTaxIncluded($price) {
    $tax_rate = 0.1; // 10%の税率
    $tax_included = $price * (1 + $tax_rate);
    return $tax_included;
}

$item_price = 1000;
$final_price = calculateTaxIncluded($item_price);

echo "商品価格:" . $item_price . "円\n";
echo "税込価格:" . $final_price . "円\n";
?>

実行結果

商品価格:1000円
税込価格:1100円

変数の有効範囲(スコープ)

スコープとは

スコープとは、変数が使える範囲のことです。

教室を例に考えてみましょう。教室の中で書いたメモは、その教室の中でしか読めませんよね。プログラムでも同じで、関数の中で作った変数は、その関数の中でしか使えません。

スコープの例

説明 関数の中と外で、同じ名前の変数を使ってみましょう。

コード例

<?php
$message = "関数の外のメッセージ";

function showMessage() {
    $message = "関数の中のメッセージ";
    echo $message . "\n";
}

showMessage();
echo $message . "\n";
?>

実行結果

関数の中のメッセージ
関数の外のメッセージ

解説

  • 関数の中の$messageと外の$messageは、同じ名前でも別々の変数です
  • 関数の中で変更しても、外の変数には影響しません

外部の変数を関数で使う方法

説明 関数の外で定義した変数を、関数の中で使いたい場合は、globalを使います。

コード例

<?php
$tax_rate = 0.1;

function calculatePrice($price) {
    global $tax_rate;
    return $price * (1 + $tax_rate);
}

echo "税込価格:" . calculatePrice(1000) . "円\n";
?>

実行結果

税込価格:1100円

実際の現場でよく使う関数の例

例1:入力チェック関数

説明 フォームに入力された内容が正しいかチェックする関数です。

コード例

<?php
function checkEmail($email) {
    if (strpos($email, "@") !== false) {
        return true;
    } else {
        return false;
    }
}

$user_email = "test@example.com";
if (checkEmail($user_email)) {
    echo "正しいメールアドレスです\n";
} else {
    echo "メールアドレスが正しくありません\n";
}
?>

例2:文字列の整形関数

説明 名前から敬称(さん、様など)をつけた表示を作る関数です。

コード例

<?php
function formatName($name, $title = "さん") {
    return $name . $title;
}

echo formatName("田中") . "\n";        // 田中さん
echo formatName("佐藤", "様") . "\n";   // 佐藤様
?>

例3:配列の平均を計算する関数

説明 数値の配列を受け取って、平均値を計算する関数です。

コード例

<?php
function calculateAverage($numbers) {
    $total = 0;
    $count = count($numbers);
    
    foreach ($numbers as $number) {
        $total += $number;
    }
    
    return $total / $count;
}

$scores = [80, 95, 72, 88, 91];
$average = calculateAverage($scores);

echo "平均点:" . $average . "点\n";
?>

実行結果

平均点:85.2点

よくある間違いと解決方法

return文を忘れる

❌ よくある間違い

function add($a, $b) {
    $result = $a + $b;
    // returnを忘れている
}

$answer = add(3, 5); // $answerにはnullが入る

✅ 正しい書き方

function add($a, $b) {
    $result = $a + $b;
    return $result; // 結果を返す
}

$answer = add(3, 5); // $answerには8が入る

関数名の重複

❌ よくある間違い

function test() {
    echo "最初の関数";
}

function test() {  // 同じ名前はエラー
    echo "2番目の関数";
}

✅ 正しい書き方

function test1() {
    echo "最初の関数";
}

function test2() {  // 違う名前にする
    echo "2番目の関数";
}

練習問題にチャレンジ

理解を深めるために、簡単な練習をしてみましょう。

問題1 文字列を受け取って、「Hello, 〇〇!」の形で返す関数を作ってください。

答え

function sayHello($name) {
    return "Hello, " . $name . "!";
}

echo sayHello("太郎"); // Hello, 太郎!

問題2 3つの数を受け取って、一番大きな数を返す関数を作ってください。

答え

function findMax($a, $b, $c) {
    if ($a >= $b && $a >= $c) {
        return $a;
    } elseif ($b >= $c) {
        return $b;
    } else {
        return $c;
    }
}

echo findMax(10, 25, 15); // 25

まとめ

関数を使えば、プログラムがとても書きやすく、読みやすくなります。

今日覚えたこと

  • 基本構文function 関数名() { 処理 }
  • 引数:関数に渡すデータ
  • 戻り値:関数が返す結果(returnを使う)
  • スコープ:変数が使える範囲

コメント

タイトルとURLをコピーしました