PHPのスクリプトは、あらかじめ定義されている 1000以上にも及ぶ「関数」を駆使することによって作成します。言い換えれば、関数を知れば知るほど、豊富で複雑な PHPスクリプトが作成できるというものです。PHPにあらかじめ組み込まれている関数については、「関数リファレンス」を参照してください。functionfunction というステートメントによって定義します。
function 関数名() {
処理に必要なプログラム
}
JavaScript の定義関数と同じです。関数名は、変数の命名規則 と同じです。また関数名は、大文字と小文字を区別しません。a と A は同じに扱います。functionステートメントの後には半角のスペースが必ず必要です。関数名には「引数」を指定する括弧「( )」を添えます。引数のパラメータが必要ない場合には空となります。関数の定義後には、セミコロンは必要ありません。関数のための処理スクリプトは、ブロック内で配置されます。returnreturnステートメントを使って、値を返します。これを戻り値(返し値)と呼びます。
function samp() {
return(戻り値);
}
function strong($text) {
return("<em>$text</em>\n");
}
print(strong("この文字は強調されます"));
strong関数を定義して、出力するテキストの文字を強調させるために、戻り値を利用しています。以下がその実行結果です。
HTMLの em要素によって、関数が実行された内容の文字列を強調しています。このような使い方さえも可能です。HTMLの構文を受け取っています。
function num($a) {
$a = ($a +2) * $a;
return $a;
}
$b = 5;
print("\$b の初期値は". $b. " です<br>\n");
$c = num($b);
print("関数に渡された \$b の値は". $b. " です<br>\n");
print("関数の実行結果は ".$c. " です");
「&」をつけると、「参照渡し」(リファレンス渡しとも言う)となり、引数として渡された変数自体の値を変化させることができます。つまり、関数の外にある変数を引数として渡された場合、結果としてその変数の値が変化することになります。
function num(&$a) {
$a = ($a +2) * $a;
return $a;
}
$b = 5;
print("\$b の初期値は". $b. " です<br>\n");
$c = num($b);
print("関数に渡された \$b の値は". $b. " です<br>\n");
print("関数の実行結果は ".$c. " です");
「&」が付いているだけです。「 = 」という代入演算子を利用してデフォルト値を設定します。
function 関数名(変数, デフォルト値)
function num($a = 5) {
$a = ($a +2) * $a;
return $a;
}