[PHP-users 31007] Re: Fatal error: Cannot redeclare

Katsuo Mogi mogi-k2 @ msg.biglobe.ne.jp
2006年 12月 13日 (水) 08:17:51 JST


茂木です。

In the message [PHP-users 31004] Re: Fatal error: Cannot redeclare
               <20061212195033.78A2.KUMAPOO @ zf7.so-net.ne.jp>
Kumapoo <kumapoo @ zf7.so-net.ne.jp> wrote:

> kumapooです。

> デバッグの案が出ているのですが、ソースいじれる実力もなく。。。

> とりあえず、できるとこやってみます。

> > この class.inc の中で config.inc を require してませんか.
> $ cat -n class.inc | grep config.inc
> →class.incでは呼んでいないみたいです。

> > あるいは本当に別のファイルを読んでいて,
> > 中身で configuration_data() を定義しているとか.
> 全ソースに対して、grepしてみました。
> $ grep -R configuration_data ../agency/*
> ../agency/lib/config.inc:function configuration_data() {
> ../agency/lib/fork.php:  $agency = new AGENCY(configuration_data(),$page,"FORK");
> ../agency/lib/lib.php:    $agency = new AGENCY(configuration_data(),$_GET["page"],$mode);

class.inc をrequireしているファイルをrequireしているのに、
さらにclass.incをrequireしているとかっていう感じではないでしょうか。
こんな風に。

file1.php
 require "class.inc"

file2.php
 require "file1.inc"
 require "class.inc"

もっと階層が深かったり、複雑になっているかもしれませんけれど。

なのでまずはconfig.incをrequireなりincludeしているファイルをみつけて、
それをまたrequireしているファイルを探して、ってたどっていけば
どこが原因か分かるかも知れません。

もっとうまい方法があるかも知れないし、的外れでしたらすいません。

# 全部 require_once か include_once に統一されていれば起こらないんでしょうね。

--
---------------------------------
 茂木克夫
    mail: mogi-k2 @ msg.biglobe.ne.jp
    site: http://www.momo.dyndns.org/~katsu/
---------------------------------


PHP-users メーリングリストの案内