PHPExcel Error: Array และ string offset access syntax with curly braces เลิกใช้แล้ว
ฉันเพิ่งอัปเดตphpexcelเป็นphpspreadsheetและสังเกตเห็นข้อผิดพลาดนี้ปรากฏขึ้น:
ErrorException (E_DEPRECATED) อาร์เรย์และไวยากรณ์การเข้าถึงออฟเซ็ตสตริงที่มีวงเล็บปีกกาเลิกใช้แล้ว
ต้องการ 'Classes / PHPExcel.php';
นี่คือส่วนหนึ่งของรหัสของฉันซึ่งทำให้เกิดข้อผิดพลาดข้างต้น:
ไฟล์: project/public/Classes/PHPExcel/Shared/ZipStreamWrapper.php
public function stream_open($path, $mode, $options, &$opened_path)
{
// Check for mode
if ($mode{0} != 'r') { //Error Line throw new PHPExcel_Reader_Exception('Mode ' . $mode . ' is not supported. Only read mode is supported.');
}
ไฟล์: project/public/Classes/PHPExcel.php
/** PHPExcel root directory */
if (!defined('PHPEXCEL_ROOT')) {
define('PHPEXCEL_ROOT', dirname(__FILE__) . '/');
require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); //Error Line
}
ไฟล์: app/Http/Controllers/analyticsAuth/statement.old.php
use PHPExcel_Reader_Excel2007;
use PHPExcel;
use PHPExcel_IOFactory;
use ZipArchive;
require 'Classes/PHPExcel.php'; //Error Line
ไฟล์: project/public/Classes/PHPExcel/Autoloader.php
PHPExcel_Autoloader::Register();
PHPExcel_Shared_ZipStreamWrapper::register(); //Error Line
if (ini_get('mbstring.func_overload') & 2) {
throw new Exception('Multibyte function overloading in PHP must be disabled for string functions (2).');
}
ขอขอบคุณ
คำตอบ
ซึ่งสามารถแก้ไขได้โดยการเปลี่ยนวงเล็บปีกกาเป็น{}วงเล็บเหลี่ยม[]
ฉันต้องการให้เครดิตกับ@HeySoraที่แสดงความคิดเห็นและชี้ให้เห็นปัญหาที่แน่นอนในกรณีนี้โดยเฉพาะ
สิ่งนี้ไม่ได้ใช้งาน$mode{0}ใน php 7 อีกต่อไปเนื่องจากได้เลิกใช้แล้ว แทนที่จะใช้ว่าใช้สิ่งนี้$mode[0]