関数は次のような構文で定義されます。
関数の中では、他の関数や クラス 定義 を含む PHP のあらゆる有効なコードを使用することができます。
関数名は、PHP の他のラベルと同じ規則に従います。関数名として有効な 形式は、まず文字かアンダースコアで始まり、その後に任意の数の文字・ 数字・あるいはアンダースコアが続くものです。正規表現で表すと、 [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* となります。
PHP 3 では、関数は参照される前に定義されている必要がありました。 PHP 4 以降ではそのような制限はありません。 ただし以下の二つの例のように、条件付きで関数が 定義されるような場合を除きます。
次の二つの例のように、ある条件下でのみ関数が定義される場合には、 その関数定義は関数がコールされる前に 行われていなければなりません。
PHP では、関数やクラスはすべてグローバルスコープにあります - 関数の内部で定義したものであっても関数の外部からコールできますし、 その逆も可能です。
PHP は関数のオーバーロードをサポートしていません。 また、宣言された関数の定義を取り消したり再定義することも できません。
注意: 関数名は大文字小文字を区別しませんが、通常は 関数宣言時と同じ名前で関数をコールする方が好ましいです。
PHP 3 では、引数のデフォルト値(詳細は、引数のデフォルト値を 参照ください)はサポートしていますが、関数の引数を可変とすることはで きません。PHP 4 以降は両方ともサポートしています。詳細は、 可変長引数リスト および func_num_args(), func_get_arg(), func_get_args() に関する関数リファレンスを 参照ください。
PHP では、関数を再帰的にコールすることが可能です。ただし、100 から 200 を超えるような再帰呼び出しは避けてください。そんなことをすると、 スタックが破壊され、スクリプトが異常終了してしまいます。