PHP 5.3 + HTTP_Request で発生する Deprecated エラーの修正

PHP 5.3 で PEAR の HTTP Request を利用すると次のエラーが発生してしまいます。

Deprecated: Assigning the return value of new by reference is deprecated in */HTTP/Request.php on line 412
Deprecated: Assigning the return value of new by reference is deprecated in */HTTP/Request.php on line 736
Deprecated: Assigning the return value of new by reference is deprecated in */HTTP/Request.php on line 749
Deprecated: Assigning the return value of new by reference is deprecated in */HTTP/Request.php on line 794

HTTP Request2 を利用すればいいんですが、Request.php そのものを修正してみます。

エラーの原因

Deprecated エラーが発生する原因は、オブジェクトを参照渡しにするため “=” の後ろに “&” を入れていますが、PHP 5 からオブジェクトはデフォルトで参照渡し (というよりオブジェクトID渡し?) になるので、 “&” が不要なためです。

412: $this->_url = &new Net_URL($url, $this->_useBrackets);
736: $this->_sock =& new Net_Socket();
749: $this->_response = &new HTTP_Response($this->_sock, $this->_listeners);
794: $this->_url = &new Net_URL($redirect);

Request.php の修正

エラーの各行の “=” の後ろの “&” 削除します。

412: $this->_url = new Net_URL($url, $this->_useBrackets);
736: $this->_sock = new Net_Socket();
749: $this->_response = new HTTP_Response($this->_sock, $this->_listeners);
794: $this->_url = new Net_URL($redirect);

作成者: コネタねこ

上から読んでも『コネタねこ』、下から読んでも『コネタねこ』。贈り物に悩んだら、コネタねこの小ネタ帳。欲しくなっちゃうプレゼント、そんなアイデアのぞきにきてね♪

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です