PHP入門

【PHP入門】関数(function)の使い方

2021年6月19日

はじめに

前回の記事では、PHPのswitch文を使った条件分岐について紹介しました。

本記事では、PHPの関数について紹介します。

関数とは

関数とは、いくつかの処理をひとまとまりにしたものです。機能を部品化するイメージで、その部品(関数)を使いまわすことができます。

関数には、処理を実行するための条件である「引数」(パラメータ)を渡すことができます。そして、処理の実行結果を「戻り値」として返却します。※戻り値は返さなくてもよい

スポンサーリンク

複数の引数を指定する場合は「total($a, $b)」のようにカンマ区切りで指定します。また引数を指定しない場合は「total()」のように記述します。

[関数の書き方 例]

関数の書き方イメージ図

関数の使用例

それでは、実際にPHPのソースコードで関数の使用例を紹介します。

以下は「total」という関数を作成しています。関数「total」では、配列の引数「$scoreList」の合算値を計算し、戻り値として返却しています。

[関数の例]

<?php

function total($scoreList) {
    $totalScore = 0;
    
    foreach($scoreList as $score) {
        // スコアを加算
        $totalScore += $score;
    }
    
    // 合計値を返却
    return $totalScore;
}

$scoreList = array(2,4,5);
// 関数の実行
$totalScore = total($scoreList);
// 合計スコアを出力
print("合計スコア:$totalScore");

?>

[実行結果]

合計スコア:11

戻り値なしの関数

関数で戻り値を返す必要がない場合は、戻り値を指定する(returnを書かなくてよい)必要はありません。

[戻り値なしの関数例]

<?php

function hello($a) {
    print("引数の値:$a");
}

// 関数の呼び出し
hello("こんにちは");

?>

[実行結果]

引数の値:こんにちは

引数なしの関数

関数に渡す引数がない場合は、関数に引数を書く必要はありません。

[引数なしの関数例]

<?php

function hello() {
    print("こんにちは");
}

// 関数の呼び出し
hello();

?>

[実行結果]

こんにちは

デフォルト引数

関数の引数にはデフォルト値を設定できます。

関数を呼び出すときに引数が指定されている場合は指定された引数の値を使い、引数が指定されていない場合はデフォルト値を使います。

[引数デフォルト値の例]

<?php

function hello($a = "こんにちは") {
    print("引数の値:$a<br />");
}

// 関数の呼び出し
hello("おはよう");
hello();

?>

[実行結果]

引数の値:おはよう
引数の値:こんにちは

型宣言

関数の引数(パラメータ)や戻り値に型を指定できます。

使用できる主な型は次のとおりです。

データ型説明
int小数点がつかない数値(整数型)
float小数点がつく数値(浮動小数点数型)
booltrue(真) または false(偽)のどちらかの値を持つ(論理型)
string文字列
array配列
callableコールバック関数
クラス/インタフェースクラスやインタフェースのインスタンス
selfクラスと同じクラスのインスタンス。クラス内部でのみ使用可能
parentクラスの、親クラスのインスタンス。クラス内部でのみ使用可能
objectオブジェクト
mixedあらゆる値

引数の型宣言

引数に型を指定できます。型を指定することで関数の引数に渡せる値を制限できます。

[引数の型宣言の例]

<?php

function sample(int $a) {
    print("引数の値:$a");
}

// 関数の呼び出し
sample(1);

?>

[実行結果]

引数の値:1

PHPではある程度の型の違いは吸収してくれます。

例えば「function sample(int $a)」のようにint型で定義している引数に対しては次のように変換してくれます。

  • sample(1); →  int型なのでOK
  • sample("1"); → 数値に変換できるのでOK
  • sample(1.5); → 小数部分は切り捨てられ1となるのでOK
  • sample("あ"); → 数値に変換できないのでNG(エラーになる)

戻り値の型宣言

引数だけでなく、戻り値の型を指定することもできます。

[戻り値の型宣言の例]

<?php

function sample() : int {
    return 1;
}

// 関数の呼び出し
print "戻り値の値".sample();

?>

[実行結果]

戻り値の値1

終わりに

本記事では、PHPの関数(function)について紹介しました。

次回の記事では、PHPの値渡しと参照渡しについて紹介します。

helpful