[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
******************************