[PHP-users 31846] Re: Cannot redeclare について
xjobphpx @ yahoo.co.jp
xjobphpx @ yahoo.co.jp
2007年 4月 6日 (金) 20:20:07 JST
自己レスです。
掲載したソースコードのmain.phpではif文になっていますが、
実際のソースコードはswitch文になっており、break文が
抜けていたため次のrequire文が実行されておりました。
気づいたのはrequire_oneceにして実行してみたら出るはずのない
case文が実行されて気づきました。
非常に初歩的なミスで皆様には大変ご迷惑をお掛けしました。
大変お騒がせしましたm(__)m
--- xjobphpx @ yahoo.co.jp wrote:
> はじめましてHashimotoと申します。
>
> 実際のソースコードではないのですが、以下のような
> 構造のコードを実行するとCannot redeclareとなって
> しまうのですが、原因がわかりません。
> 他に同じ関数名で定義しているところもなく、対応に
> 苦慮しております。
>
> 皆様のお力を拝借したく、ご教授、「マニュアルの...を
> ちゃんと読め!!」といった情報をいただけますよう
> お願いいたします。
>
> PHPのバージョンは5.1.6です。
>
> --- main.php -----------------
> <?php
> ...
> if ('regist' === $prm['exec']) {
> require ("func.php");
> if (check($prm)) {
> ...
> }
> ...
> } else {
> require ("func.php");
> ...
> }
> ?>
> ------------------------------
> --- func.php ---------------
> <?php
> function getData($in) {
> ...
> return $data;
> }
>
> function getPrevData($in) {
> $prevData = null;
> if (1 < $in['cnt']) {
> // 次の命令でCannot redeclare getdata() ... になってしまいます...
> $prevData = getData($in['cnt'] - 1);
> } else {
> ...;
> }
> return $prevData;
> }
>
> function validate($in) {
> $data = getData($in);
> $prevData = getPrevData($in);
> }
> ?>
> ------------------------------
>
> 以上、よろしくお願いいたします。
>
> --------------------------------------
> Protect Your PC Now ! - 0 yen Security Campaign
> http://pr.mail.yahoo.co.jp/premium/
>
> _______________________________________________
> PHP-users mailing list PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
>
--------------------------------------
Protect Your PC Now ! - 0 yen Security Campaign
http://pr.mail.yahoo.co.jp/premium/
PHP-users メーリングリストの案内