PHP マニュアル
前のページ |  | 次のページ

# 第 12章関数

# ユーザー定義関数

関数は次のような構文で定義されます。

`<?php function foo ($arg_1, $arg_2, ..., $arg_n) { echo "関数の例\n"; return $retval; } ?>`

関数の中では、他の関数や クラス 定義 を含む PHP のあらゆる有効なコードを使用することができます。

PHP 3 では、関数は参照される前に定義されている必要がありました。 PHP 4ではそのような制限はありません。 ただし以下の二つの例のように、条件付きで関数が 定義されるような場合を除きます。

次の二つの例のように、ある条件下でのみ関数が定義される場合には、 その関数定義は関数がコールされる前に 行われていなければなりません。

例 12-1. 条件つきの関数

`<?php $makefoo = true; /* ここでは関数foo()はまだ定義されていないので コールすることはできません。 しかし関数 bar()はコールできます。 */ bar(); if ($makefoo) { function foo () { echo "I don't exist until program execution reaches me.\n"; } } /* ここでは $makefooがtrueと評価されているため 安全にfoo()をコールすることができます。 */ if ($makefoo) foo(); function bar() { echo "I exist immediately upon program start.\n"; } ?>`

例 12-2. 関数の中の関数

`<?php function foo() { function bar() { echo "I don't exist until foo() is called.\n"; } } /* ここでは関数bar()はまだ定義されていないので コールすることはできません。 */ foo(); /* foo()の実行によって bar()が 定義されるためここではbar()を コールすることができます。*/ bar(); ?>`

PHP は関数のオーバーロードをサポートしていません。 また、宣言された関数の定義を取り消したり再定義することも できません。

> 注意: 関数名は大文字小文字を区別しませんが、通常は 関数宣言時と同じ名前で関数をコールする方が好ましいです。

PHP 3 では、引数のデフォルト値(詳細は、引数のデフォルト値を 参照下さい)はサポートしていますが、関数の引数を可変とすることはで きません。PHP 4 は両方ともサポートしています。詳細は、 可変長引数リスト および func_num_args(), func_get_arg(), func_get_args() に関する関数リファレンスを 参照下さい。

前のページ | ホーム | 次のページ
include_once() | 上に戻る | 関数の引数