Я использовал следующий код, чтобы установить бит. Это работает нормально в php5.
function setbit($pos) {
return (1 << $pos);
}
$test = chr(0);
$test += setbit(2);
print_r($test);
//result 4
После обновления до php7 теперь я получаю сообщение об ошибке Предупреждение: встречается нечисловое значение. Вывод $ test по-прежнему выводится как 4, и это правильно.
Я понимаю ошибку. Это потому, что $ test является строкой, а моя функция setbit возвращает целое число. Как я уже говорил, в php5 это работало нормально, но теперь в php7 работать не будет.
$ test должен оставаться строкой, так как я выполняю некоторые строковые операции позже в коде, например
$test = chr(3);
Я знаю, что мог бы просто отключить предупреждение в php_ini, но я бы скорее решил проблему, чем скрыл ее. Есть ли способ заставить это работать в php7 без отключения предупреждения?