[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 メーリングリストの案内