UnsplashのSarah Dorweilerが撮影した写真
目次
この記事では関数の定義方法についてまとめています。
基本の定義方法に始まり、引数・戻り値のデータ型指定、引数への初期値の設定についてご紹介します。
まずは基本的な関数の定義と呼び出しです。
//定義
function [関数名](引数1, 引数2){
//処理
return [戻り値]
}
//呼び出し
[関数名](引数1, 引数2); //戻り値無しの場合
$変数 = [関数名](引数1, 引数2); //戻り値有りの場合
例)
//定義
function add($a, $b){
$total = $a + $b;
return $total;
}
//呼び出し
$result = add(5,3);
引数と戻り値のデータ型を指定すると保守性が向上します。
呼び出し方については特筆することが無いので、省略します。
//定義
function [関数名](データ型 引数1, データ型 引数2):戻り値のデータ型{
~~処理~~
}
※データ型を指定しない場合は「mixed」を記述する
例)
//定義
function introduce(string $name, int $age):array{
$data = [
"name" => "私の名前は${name}です。",
"age" => "歳は${age}です。"
];
return $data;
}
関数を呼び出す際、引数には必ず何かしら値を渡す必要があります。
しかし、引数に初期値を設定することで回避できます。
引数に初期値を設定するには以下のように書きます。
function [関数名](引数1 = 初期値1, 引数2 = 初期値2){
~~処理~~
}
例)
function calcPriceWithTax($price, $tax = 0.08){
$result = $price * (1 + $tax);
return $result;
}
使う機会は少ないかもしれないですが、覚えておくと便利。。かも!
事前に必要な引数の数がわからない時に活躍するのが「可変長引数」です。
//定義
function add(int ...$numbers){ //⇐複数の引数を$numbersで受け取る
$total = 0;
foreach($numbers as $number){
$total += $number;
}
return $total;
}
//呼び出し
$result = add(1, 2, 3, 4, 5); //⇐複数の引数を渡す
echo $result;
引数の参照渡しをしたい場合には以下のように、引数の前に「&」をつけます。
function add(&$a, &$b){
~~処理~~
}
基本的に「関数の外で定義した変数(グローバルスコープの変数)は関数の外」で、「関数の中で定義した変数(ローカルスコープの変数)は関数の中」でしか使えないのですが、
関数の外で定義した変数を関数の中で使うコードの例です。
$num = 3; //⇐グローバルスコープの変数
function add(){
global $num; //⇐$numを関数内で使う宣言
return $num+10;
}
$result = add();
echo $result;
グローバルスコープの変数を関数内で使うには関数内で「global」を使いグローバルスコープを使う宣言をします。
関数の使い方については以上です!