The function keyword in PHP is used to define functions, which are reusable blocks of code.
PHPにおける functionキーワードは、関数を定義するために使用されます。関数は特定のタスクを実行するコードのブロックであり、コードの再利用性や可読性を向上させます。本記事では、functionキーワードの使い方や関連する概念について詳しく説明します。
構文
PHP
function 関数名(引数リスト) {
// 関数の処理
return 戻り値;
}
例:基本的な関数
PHP
<?php
function sayHello() {
echo "こんにちは、世界!";
}
sayHello();
?>
こんにちは、世界!
関数は、外部から値を受け取るために引数を定義できます。
PHP
<?php
function greet($name) {
echo "こんにちは、$name さん!";
}
greet("太郎");
?>
こんにちは、太郎 さん!
デフォルト値付きの引数
引数にはデフォルト値を設定することが可能です。デフォルト値は、関数が呼び出されたときに対応する引数が省略された場合に使用されます。
PHP
<?php
function greet2($name = "ゲスト") {
echo "こんにちは、$name さん!";
}
greet2();
?>
こんにちは、ゲスト さん!
PHP 7以降、引数と戻り値に型宣言を追加できます。これにより、予期しない型のデータが渡されるのを防ぎます。
引数の型宣言
PHP
<?php
function add(int $a, int $b) {
return $a + $b;
}
echo add(5, 3);
?>
8
戻り値の型指定
PHP
<?php
function add2(int $a, int $b): int {
return $a + $b;
}
echo add2(6, 4);
?>
10
関数が不特定多数の引数を受け取る場合、スプレッド演算子(...)を使用します。
PHP
<?php
function sum(...$numbers) {
return array_sum($numbers);
}
echo sum(1, 2, 3, 4);
?>
10
引数を参照として渡すことで、関数内で引数の値を直接変更することができます。
PHP
<?php
function increment(&$value) {
$value++;
}
$num = 5;
increment($num);
echo $num;
?>
6
functionキーワードは無名関数(匿名関数)を定義する際にも使用されます。無名関数は変数に代入したり、他の関数の引数として渡すことができます。
PHP
<?php
$square = function($n) {
return $n * $n;
};
echo $square(4);
?>
16
クロージャでの変数の取り込み
useキーワードを使用して、無名関数の外部スコープの変数を取り込むことができます。
PHP
<?php
$message = "こんにちは";
$greet = function($name) use ($message) {
echo "$message" . "、" . $name . "さん!";
};
$greet("花子");
?>
こんにちは、花子さん!
PHP 7.4以降では、より簡潔に無名関数を定義できるアロー関数(fnキーワード)が導入されました。アロー関数では、外部スコープの変数が自動的に利用可能です。
PHP
<?php
$square = fn($n) => $n * $n;
echo $square(5);
?>
25
関数名を文字列として変数に代入し、その変数を関数として呼び出すことができます。
PHP
<?php
function hello() {
echo "こんにちは!";
}
$funcName = "hello";
$funcName();
?>
こんにちは!
関数内で定義された変数は、その関数内でのみ有効なローカル変数です。外部の変数にアクセスするには、globalキーワードや $GLOBALS配列を使用します。
PHP
<?php
$number = 10;
function displayNumber() {
global $number;
echo $number;
}
displayNumber();
?>
10
クラス内でメソッドを定義する際にも functionキーワードを使用します。この場合、アクセス修飾子(public、protected、private)を指定します。
PHP
<?php
class Greeter {
public function greet($name) {
echo "こんにちは、$name さん!";
}
}
$greeter = new Greeter();
$greeter->greet("太郎");
?>
こんにちは、太郎 さん!
関数が自分自身を呼び出すことを再帰といいます。再帰関数を使用することで、複雑な問題を簡潔に表現できます。
PHP
<?php
function factorial($n) {
if ($n === 0) {
return 1;
}
return $n * factorial($n - 1);
}
echo factorial(5);
?>
120
functionキーワードは PHPで関数を定義するための基本的な構成要素です。適切に関数を使用することで、コードの再利用性や可読性が向上します。また、無名関数やアロー関数、型宣言などの機能を活用することで、より堅牢でメンテナンスしやすいコードを書くことができます。