Я использую плагин TCPDF для создания PDF-файла в PHP 7. Тот же код отлично работает в более низкой версии PHP 5, но когда я запускаю этот же код в PHP 7, он выдает следующее сообщение об ошибке.
A PHP Error was encountered
Severity: 8192
Message: The each() function is deprecated. This message will be suppressed on further calls
Filename: tcpdf/tcpdf.php
Line Number: 16542






Согласно php:
This function has been DEPRECATED as of PHP 7.2.0. Relying on this function is highly discouraged.
http://php.net/manual/en/function.each.php
Насколько я помню, у меня также есть «устаревший» сценарий для каждого из них. Вместо того, чтобы изменять его, я просто отключил устаревшие предупреждения об ошибках (на данный момент).
index.php
switch (ENVIRONMENT) {
case 'development':
error_reporting(~E_DEPRECATED);
ini_set('display_errors', 1);
break;
case 'testing':
case 'production':
ini_set('display_errors', 0);
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
break;
default:
header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
echo 'The application environment is not set correctly.';
exit(1); // EXIT_ERROR
}
Вы можете обновить библиотеку, поскольку я считаю, что она все еще находится в разработке, или, если это не так, вы также можете изменить код, заменив каждый правильный цикл foreach, где это необходимо:
Отредактируйте в файле: \FPDI\fpdi.php строку 567:
//while (list($k, $v) = each($value[1])) {
в коде:
foreach ($value[1] AS $k => $v) {
И отредактируйте в File: \tcpdf\tcpdf.php строку 16543:
//while (list($id, $name) = each($attr_array[1])) {
в коде:
foreach($attr_array[1] as $id => $name) {
Это трюк! В tcpdf.php есть 3 места с использованием tecnickcom / tcpdf версии 6.2.26
Обратите внимание на всех, кто это обнаружит ... в последней версии TCPDF это исправлено ... поэтому, если вы просто выполните обновление, все будет в порядке: https://github.com/tecnickcom/TCPDF
Отвечает ли это на ваш вопрос? Как я могу обновить код, в котором используется устаревшая функция each ()?