PHPのユーザー定義関数のサンプルです。
目次
サンプル | ユーザー定義関数とは |
引数と戻り値なし / 引数と戻り値あり / 配列を返す | |
デフォルト引数あり / 一部にデフォルト引数 / デフォルト値がある箇所に引数 | |
無名関数 / 関数の中に関数 |
ユーザー定義関数とは
- ユーザーが定義する関数は「ユーザー定義関数」と呼ばれます。
→PHPにある関数は「組み込み関数」や「ビルトイン関数」と呼ばれます。 - 関数は処理をまとめることができます。使用するときは関数名を指定して呼び出します。
- 引数は関数にデータを渡します。パラメータとも言います。引数は必須ではありません。
- 呼び出し先の引数は、「仮引数」といいます。
- 呼び出し元の引数は、「実引数」といいます。
- returnは、関数の呼び出し元に値を返します。返す値を「返り値」または「戻り値」といいます。returnは必須ではありません。
- 関数内の変数はローカル変数になります。ローカル変数は関数内からのみアクセスできます。
引数と戻り値なし
<?php
function test1(){
echo 'test1'; // test1と表示される
}
test1();
6行目は、2行目の関数を呼んでいます。
引数と戻り値あり
<?php
function test1($num1,$num2){
$ans = $num1 + $num2;
return $ans;
}
$num = test1(2,3);
echo $num; // 5と表示される
7行目は、2行目の関数を引数付きで呼んでいます。
4行目は、戻り値を7行目の呼び出し元に返しています。
配列を返す
<?php
function test1(){
return ['赤', '黄', '青'];
}
$color = test1();
foreach ($color as $c1) {
echo $c1; //赤 黄 青
}
3行目は、配列を返しています。
デフォルト引数あり
デフォルト引数は、関数の引数にデフォルト値が設定されています。
関数を呼ぶ側は、引数を省略できます。
<?php
function test1($num1=1,$num2=2,$num3=3){
$ans = $num1 + $num2 + $num3;
return $ans;
}
$num = test1();
echo $num; // 6と表示される
2行目は、デフォルト引数を使用しています。
7行目は、引数を指定していませんが戻り値は6になります。
一部にデフォルト引数
デフォルト引数は、右から順に指定します。左端1つのみ指定することはできません。
<?php
function test1($num1,$num2=2,$num3=3){
$ans = $num1 + $num2 + $num3;
return $ans;
}
$num = test1(1);
echo $num; // 6と表示される
7行目の引数の1は2行目の$num1にあたります。
デフォルト値がある箇所に引数
<?php
function test1($num1=1,$num2=2,$num3=3){
$ans = $num1 + $num2 + $num3;
return $ans;
}
$num = test1(3,4);
echo $num; // 10と表示される
3行目は、3つの引数にデフォルト引数が設定されています。
引数の値は、関数に設定した引数が優先されてnum1は3、num2は4、num3は3として計算されます。
無名関数
関数名がない関数です。
<?php
$log1 = function ($num1) {
echo ($num1 . "です");
};
$log1("100"); // 100ですが表示される
2行目は、関数名がありません。
4行目は、最後にセミコロンが必要です。
5行目は、無名関数を実行しています。
関数の中に関数
関数の中に関数を入れることは可能です。
<?php
function test1(){
echo 'test1';
function test2(){
echo 'test2';
}
test2();
}
test1(); // test1 test2と表示される
関数test1が実行された時、7行目で関数test2が実行されます。
以下はPHPマニュアルのユーザー定義関数のリンクです。
http://php.net/manual/ja/functions.user-defined.php
関連の記事