Anybody having any idea, why it says:
Deprecated: Assigning the return value of new by reference is deprecated in phpExcelReader\Excel\reader.php on line 261
$this->_ole =& new OLERead();
I am using WAMP - PHP Version 5.3.13
Anybody having any idea, why it says:
Deprecated: Assigning the return value of new by reference is deprecated in phpExcelReader\Excel\reader.php on line 261
$this->_ole =& new OLERead();
I am using WAMP - PHP Version 5.3.13
古いphp構文またはメソッドである可能性があります。コードを変更したところ、うまくいきました:
ついさっき:
$this->_ole =& new OLERead();
変更: (アンパサンドを削除)
$this->_ole = new OLERead();
警告と通知はなくなりました。
ここのアドバイスによるとhttp://code.google.com/p/php-excel-reader/issues/detail?id=82
問題は $this->_ole =& new OLERead(); にあります。明白で申し訳ありませんが、たとえば、この $t = new OLERead(); で修正できます。$this->_ole =& $t;
に変更$this->_ole = new OLERead();
しました
$t = new OLERead();
$this->_ole =& $t;
エラー メッセージは表示されず、データもインポートされました。だからすべての作品。しかし、変更によって他の問題が発生しないかどうかはわかりません。分かる方、アドバイスお願いします。
PHP 5.3.0 以降、foo(&$a); で & を使用すると、「call-time pass-by-reference」は推奨されないという警告が表示されます。
これを試してみてください。これは完全に機能します。
Excel_reader2.php :
オフにする : //関数 OLERead(){ }
そして変更:
/**
* Constructor
*
* Some basic initialisation
function Spreadsheet_Excel_Reader($file='',$store_extended_info=true,$outputEncoding='') {
$this->_ole = new OLERead();
$this->setUTFEncoder('iconv');
if ($outputEncoding != '') {
$this->setOutputEncoding($outputEncoding);
}
for ($i=1; $i<245; $i++) {
$name = strtolower(( (($i-1)/26>=1)?chr(($i-1)/26+64):'') . chr(($i-1)%26+65));
$this->colnames[$name] = $i;
$this->colindexes[$i] = $name;
}
$this->store_extended_info = $store_extended_info;
if ($file!="") {
$this->read($file);
}
} */