Поддержка Проблемы и решения Решение Warning a non numeric value encountered php

  • Эта проблема связана с миграцией после версии php 7.
    Если проблему не решить, на php 8 это вызовет фатальную ошибку

    Eсли просто, то в строке с ошибкой после +, -, *, или / вставляете (int)

    ошибка
    $fileupload_maxk = KB_IN_BYTES * get_site_option( ‘fileupload_maxk’, 1500 );

    мне помогло это (int)
    $fileupload_maxk = KB_IN_BYTES * (int)get_site_option( ‘fileupload_maxk’, 1500 );

    Устранился Warning php 7.4 и фатальная ошибка при переходе на php 8

    подробности:

    https://www.php.net/manual/ru/migration71.other-changes.php

    https://kirkizh.ru/2018/02/php7-non-numeric-value/ — здесь просто объясняется

    другие решения

    https://stackoverflow.com/questions/42044127/warning-a-non-numeric-value-encountered

    PHP 7.1-7.4
    
    Это предупреждение появляется, когда у вас есть нечисловая строка в выражении (вероятно +, -, *, или /), где PHP ожидает увидеть другой скаляр (int, float или bool). Возможны две ситуации, когда это происходит:
    
    Вы не хотели использовать операцию, которая ожидает скаляр. Например, +(добавление), когда вы имели в виду .(конкатенацию).
    Вы ожидали число, но значение, которое вы использовали, даже близко не соответствовало числу. Выясните, какой у вас не номер, и действуйте соответственно.
    Например, если у вас есть echo 3 + $variableи у вас $variableесть строка "n/a", вы можете вместо этого вывести «неприменимо». Или, может быть, вы решили, что все нечисловые значения должны рассматриваться как 0 и приводиться к .
    Исправьте эти предупреждения! В PHP 8 это становится фатальной ошибкой: «Uncaught TypeError: Неподдерживаемые типы операндов».
    
    PHP 8
    Код, который раньше выдавал предупреждение «Обнаружено неверно сформированное числовое значение» в PHP 7.1-7.4, теперь вместо этого выдает это предупреждение. Это происходит, когда у вас есть «конечная строка», которая представляет собой строку, начинающуюся с числа, но за которой следует что-то нечисловое. (Он по-прежнему будет выполнять математические операции, но вы должны исправить это! В будущем это может стать ошибкой.)
Просмотр 1 ответа (всего 1)
  • вариант 1.
    переписать код под новую версию php
    вариант 2. выбрать на хостинге в настройках более старую версию php для сайта

Просмотр 1 ответа (всего 1)