[PHP-users 12914] 制御構文内での関数定義について

Seto php-users@php.gr.jp
Fri, 31 Jan 2003 16:33:12 +0900


Setoです。

テスト用スクリプトを作成していて
記載コードのように制御構文内に関数を定義してしまったのですが
submitボタンクリック後に
Call to undefined function: functest1()
とエラーが出てしまいました。



__EOD; exit; ?> #そもそもコーディングスタイルとして?かもしれませんが #テスト用スクリプトだったので #つれずれなるままにコーディングしていたのです。 最初のif制御を ケース1 if ( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) functest1( "test" ); function functest1( $str ) { return; } または ケース2 if ( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) { function functest1( $str ) { return; } functest1( "test" ); } とすればOKでしたのでif分制御内での関数定義が原因のようです。 またケース2の部分だけを別スクリプト(if文つきのまま)として 呼び出してもNGでした。 マニュアルにはユーザー定義関数 http://www.php.net/manual/ja/functions.php#functions.user-defined PHP 3 では、関数は参照される前に定義されている必要がありました。 PHP 4ではそのような制限はありません。 とあるだけなのですが、どのように解釈すべきでしょうか? どこかほかに説明されているのでしょうか? よろしくお願いいたします。 ****************************** Junya Seto ******************************