関数の定義と呼び出し
パラメーターと戻り値を備えた独自の関数を作成します。
「関数の定義と呼び出し」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。
関数を使う理由
関数を使うと、再利用可能なロジックをまとめて名前を付けられるため、コードを繰り返さずに何度も呼び出せます。主な利点は次のとおりです。
- 重複を避けられる(DRY原則)
- テストとデバッグが容易になる
- コード自体がドキュメントになる
関数の定義
function キーワード、名前、オプションのパラメーター、本体を使用します。
<?php
function greet(string $name): string {
return 'Hello, ' . $name . '!';
}
echo greet('Alice'); // Hello, Alice!パラメーターと引数
パラメーターは定義内の変数名で、引数は呼び出し時に渡す実際の値です。
<?php
function add(int $a, int $b): int {
return $a + $b; // $a and $b are parameters
}
$sum = add(3, 4); // 3 and 4 are arguments
echo $sum; // 7戻り値
return を使って呼び出し元に値を返します。return のない関数は NULL を返します。
<?php
function square(float $n): float {
return $n * $n;
}
function logMessage(string $msg): void {
echo '[LOG] ' . $msg . PHP_EOL;
// void functions must not return a value
}
echo square(4); // 16
logMessage('started'); // [LOG] started値渡しと参照渡し
デフォルトでは、PHPは引数を値渡し(コピー)します。& を先頭に付けると参照渡しになります。
<?php
function doubleByValue(int $n): void {
$n *= 2; // changes only the local copy
}
function doubleByRef(int &$n): void {
$n *= 2; // changes the original
}
$x = 5;
doubleByValue($x);
echo $x; // 5 — unchanged
doubleByRef($x);
echo $x; // 10 — changed複数の return 箇所
関数には、早期終了のために複数の return 文を記述できます。
<?php
function divide(float $a, float $b): ?float {
if ($b === 0.0) {
return null; // early return on error
}
return $a / $b;
}
var_dump(divide(10, 0)); // NULL
echo divide(10, 2); // 5関数のホイスティング
PHPの関数は、ファイル内のどこで定義されているかにかかわらず、ファイル全体で使用できます。JavaScriptとは異なり、ほとんどのPHP関数は使用前に宣言する必要がありません。
<?php
echo double(5); // 10 — works even though double is defined below
function double(int $n): int {
return $n * 2;
}
// Exception: functions inside conditionals ARE position-sensitive再帰関数
自分自身を呼び出す関数を再帰関数と呼びます。無限再帰を避けるため、必ず基底ケースを用意してください。
<?php
function factorial(int $n): int {
if ($n <= 1) return 1; // base case
return $n * factorial($n - 1); // recursive call
}
echo factorial(5); // 120型宣言
PHP 7以降では、パラメーターと戻り値の型ヒントをサポートしています。PHP 8では mixed、never、交差型が追加されました。
<?php
declare(strict_types=1);
function clamp(int $value, int $min, int $max): int {
return max($min, min($max, $value));
}
echo clamp(150, 0, 100); // 100
echo clamp(-5, 0, 100); // 0
echo clamp(42, 0, 100); // 42名前付き関数と組み込み関数
PHPには数千もの組み込み関数が用意されています。実行時には、関数が存在するかどうかをいつでも確認できます。
<?php
if (function_exists('mb_strlen')) {
echo mb_strlen('こんにちは'); // 5 — correct multi-byte length
} else {
echo strlen('こんにちは'); // 15 — byte count, wrong for UTF-8
}複数の値を返す
配列を返し、呼び出し側で分割代入することで、複数の値を返せます。
<?php
function minMax(array $arr): array {
return [min($arr), max($arr)];
}
[$min, $max] = minMax([3, 1, 7, 2, 9]);
echo "Min: $min, Max: $max"; // Min: 1, Max: 9クイックチェック
明示的な return 文がないPHP関数は何を返しますか。
まとめ: 関数
PHP関数の基本です。
function name(params): returnTypeで定義します- 値渡し(デフォルト)または
&による参照渡しで引数を渡します - return のない関数は NULL を返します
- 再帰には基底ケースが必要です
- 関数はファイル全体で使用できます(ホイスティング)
次は、デフォルトパラメーターと可変長パラメーターです。
よくある質問
「関数の定義と呼び出し」レッスンは無料ですか?
はい。「関数の定義と呼び出し」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。
「関数の定義と呼び出し」で何を学びますか?
パラメーターと戻り値を備えた独自の関数を作成します。 ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
PHP Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「関数の定義と呼び出し」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPHP Academyレッスンでコードを書いて実行できますか?
はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。