Điều này là do thay đổi về cách biến phức tạp được giải quyết trong PHP 5 so với 7. Xem phần trên Thay đổi để xử lý biến tại đây: http://php.net/manual/en/migration70.incompatible.php
Sự khác biệt là sự biểu hiện:
$this->links->$data[$te]['attributes']['ID']
được đánh giá như thế này trong PHP 5:
$this->links->{$data[$te]['attributes']['ID']}
và như thế này trong PHP 7:
($this->links->$data)[$te]['attributes']['ID']
Xem https://3v4l.org/gB0rQ cho một ví dụ cắt xuống.
Bạn cần sửa đổi mã của mình để rõ ràng, bằng cách sử dụng {}
nếu thích hợp hoặc bằng cách chia nhỏ thành hai dòng. Trong trường hợp này, nơi bạn đã có mã hoạt động tốt trong PHP 5, hãy chọn mã nguồn cũ, vì nó có nghĩa là hành vi vẫn nhất quán trong tất cả các phiên bản của PHP.
Rõ ràng có một cấp độ khác bên dưới '$ dữ liệu [$ te] ['thuộc tính'] ['URL']' có chứa giá trị thực tế và '$ dữ liệu [$ te] ['thuộc tính'] ['URL'] 'là một mảng – RiggsFolly
giá trị của' $ te' là gì? – mega6382
sử dụng var_dump ($ data [$ te] ['attributes'] ['URL']); và kiểm tra những gì trong đó plz –