PHP 7 выдает ошибку при передаче слишком мало параметров в функцию? - PullRequest
1 голос
/ 02 июня 2019

Я обновляю свое веб-приложение до php7 с 5.6, и я неожиданно получаю ошибки, когда передаю слишком мало аргументов функциям.В php 5.6 я мог иметь функции, скажем, с тремя параметрами, и я мог передать два, и это будет работать нормально.Кто-нибудь еще сталкивался с этим?Это новое в php7?

Раньше я мог передавать два аргумента функции с тремя параметрами, но внезапно я получаю ошибки.

function displayField ($fieldname,$fieldval,$nobold)  { ... };

displayField ("testname","this value");

В этом случае я получаю:

Неустранимая ошибка: Uncaught ArgumentCountError: Слишком мало аргументов для функции displayField (), 2 передано в / home / cabox / workspace / php/encscripts.php в строке 31 и ровно 3 ожидаемых в /home/cabox/workspace/php/encscripts.php:3

Есть ли способ обойти это, или я должен найти каждый примерпередать меньше ожидаемых параметров и переписать мой код?Спасибо за вашу помощь!

1 Ответ

3 голосов
/ 02 июня 2019

Из руководства по PHP:

Ранее было бы выдано предупреждение для вызова пользовательских функций со слишком малым количеством аргументов. Теперь это предупреждение переведено в исключение ошибки. Это изменение касается только пользовательских функций, а не внутренних функций. Например:

https://www.php.net/manual/en/migration71.incompatible.php

Попробуйте сделать третий параметр необязательным:

function displayField($fieldname, $fieldval, $nobold = null) { ... };
...