[PHP-users 35714] Re: Apache2.4 php-5.3.10 php-5.3.13 pearエラーの対処方法を教えてください

Kiyotaka sumii quatrecentsept @ tsunukoraf.net
2012年 5月 11日 (金) 14:48:10 JST


住井といいます。

今、直接ソースを参照できない状態なので、
確実な修正方法までは分からないのですが、
エラーメッセージを見た限りでは以下のように思います。

> Strict Standards: Redefining already defined constructor for class PEAR_Info
> in /usr/local/php-5-3-10/lib/php/PEAR/PEAR/Info.php on line 214

コンストラクタが再定義されているとあるので、
この214行目でコンストラクタが2回呼び出されているのではないでしょうか?

php4との互換性のためだったと思いますが、
クラス名と同じ関数の中でコンストラクタを読み込んでいることがあります。

function PEAR_info () {
    $this->__construct();
}

こんな感じです。実際には引数が入っていると思いますが。
もし、そうだとするとこの部分を回避すれば一つ目のエラーは出なくなるのでは?


> Deprecated: Assigning the return value of new by reference is deprecated in
> /usr/local/php-5-3-10/lib/php/PEAR/PEAR/Config.php on line 650
> ・・・・続く

こちらはクラスをnewしたときに参照渡しになっているせいでしょうか?
正確には参照渡しが基本になったので、

$foo = &new some_Class();

のように、&をつけて参照渡しを明示するとこのメッセージが出たと思います。
これは & なしにするだけで解決すると思います。

ソースで確認してみて下さい。




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