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);