関数 (function) とは PHP
function = 機能
実現したい処理を実行するためのいくつかの命令をグループ化して、それに命名し定義したもの。
関数は予め定義されたものを使うか、前もって定義する。
命令を実行する場合は、関数を呼び出す。
引数をあたえ、処理を実行し、戻り値を返す。
関数の定義は、プログラムの処理の流れに影響しない。
どこに定義しても大丈夫。
関数の種類
ビルトイン関数
既に定義された関数。
ユーザー定義関数
スクリプトを制作する側が自ら定義した関数。
関数の定義
返り値がある場合
構文
function 関数名(引数,引数,・・){
処理
return 返り値;
}
返り値がない場合
構文
function 関数名(引数,引数,・・){
処理
}
関数の呼び出し
引数がない場合
構文
関数名(引数)
引数が単数または複数の場合
構文
関数名(引数,引数,引数)
関数の定義する場所
関数が呼び出されるコードよりも後に定義のコードを記述しても実行される。
関数が呼び出されるHTMLコードよりも前に記述しても関数は実行される。
関数の中断 return;
関数を最後まで実行せずに中断する場合。
何も値を返さないreturn;を実行する。
↓
関数がその時点で中断され関数の実行が終了する。
<?php function keisan($atai1,$atai2){ if($atai1 <= 0){ echo "関数を中断しました。"; return; } $value = $atai1*$atai2; echo "{$atai1}と{$atai2}をかけると{$value}です。<br>"; } keisan(2,2); keisan(0,1); ?>
関数を中断しました。
引数(ひきすう)とは
引数 = parameter
変数 = variable
関数の中で処理に必要な値、又は変数。
引数の省略と初期値(デフォルト)
初期値のある引数は省略可能。
引数の初期値(デフォルト)は、関数を呼び出した時に、引数を省略した場合に使用される値。
初期値がない引数は先
初期値がある引数は後
初期値がない引数を関数呼び出し時に省略して実行した場合には、引数が未定義のまま処理される。
項目 | $引数 初期値なし |
$引数=初期値 初期値あり |
---|---|---|
引数の省略 | 未定義で処理される | 初期値 |
引数が設定された場合 | 設定された値 | 設定された値 |
記述場所 | 先 | 後 |
構文function 関数名(引数1,引数2=初期値,引数3=初期値){
処理
return 返り値;
}
コード例
<?php function hikisuu( $shokichi_nashi, $shokichi_ari1=1, $shokichi_ari2=2 ) { echo "$shokichi_nashi<br>"; echo "$shokichi_ari1<br>"; echo "$shokichi_ari2<br>"; } hikisuu(0); ?>
1
2
引数の設定数を固定しない場合 可変長引数
可変長引数:引数の個数を定義の段階で決めていない
処理
}
$引数に配列として格納される。
<?php function hikisuu_func($hikisuu1,...$hikisuu2){ print_r($hikisuu1."<br>"); print_r($hikisuu2); } hikisuu_func("引数1","引数2","引数3","引数4"); ?>
出力
引数1
Array ( [0] => 引数2 [1] => 引数3 [2] => 引数4 )
引数と返り値の型宣言
構文function 関数名( 型 引数1 , 型 引数2 ):返り値の型{
処理
return 返り値;
}
指定できるデータ型
データ型 | 概要 |
---|---|
bool | 真偽値 |
float | 浮動小数点数(float,double,実数) |
int | 整数値 |
string | 文字列 |
array | 配列 |
callable | コールバック関数 |
クラス/インターフェース名 | 指定されたクラスのインスタンス |
self | 現在のインスタンス |
返り値・戻り値
関数は、処理が実行されて終了すると、その結果の値を、関数を呼び出した元に値を返す。
その値を返り値・戻り値という。
※値を返す場合はreturn文を使う。
※返り値がある関数もあるし、返り値がない関数もある。
マルチバイト文字列関数(multibyte)
関数の先頭にmbがつく
日本語の文字列のような、pc上マルチバイトを使って表現する文字列に対して処理を実行する関数。
関数のシグネチャ signature
シグネチャ 関数を説明するための書式
構文
返り値のデータ型 関数名(引数1のデータ型 引数1のサンプル変数名,[引数2のデータ型 引数2のサンプル変数名])
返り値のデータ型
mixed データ型が複数のケースの場合。
void 返り値がない場合。
引数の書式
引数のデータ型 参考となる変数名
データ型が複数のケースが有り特定できない場合はmixed。
引数が複数ある場合にはカンマで区切る。
[]内は、省略可能な引数=デフォルト値が設定されている引数。
引数が不要な場合 void。
参照渡しの場合 引数の変数名の前に&を付ける。