任何人有任何想法,为什么它说:
Deprecated: Assigning the return value of new by reference is deprecated in phpExcelReader\Excel\reader.php on line 261
$this->_ole =& new OLERead();
我在用WAMP - PHP Version 5.3.13
任何人有任何想法,为什么它说:
Deprecated: Assigning the return value of new by reference is deprecated in phpExcelReader\Excel\reader.php on line 261
$this->_ole =& new OLERead();
我在用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); 中使用 & 时,您将收到一条警告说“调用时传递引用”已被弃用;
试试这个。这完美地工作。
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);
}
} */