Warnings: Illegal String Offset + Cannot Assign Empty String To String Offset

101
26 февраля 2022, 19:00

как можно пофиксить данные предупреждения возникшие с переходом на php 7.1? Вот строки в которых возникают предупреждения:

Warning: Illegal string offset 'url'

$value = isset($meta['id']) ? $meta : $std;
if (!isset($value['url']))
    $value['url'] = '';

Illegal string offset 'id', Uninitialized string offset: 0, Cannot assign an empty string to a string offset

if (!isset($value['id']))
$value['id'] = '';
$value['url'] = isset($value['src'])? $value['src']: $value['url'];
Answer 1

У Вас есть функция проверяющая наличие значения.
Синтаксис следующий:

if (!isset(переменная)){ // где !isset значит не существует.
    переменная = ''; // Добавляем значение переменной.
}

Пример:

if (!isset($value['url'])){
    $value['url'] = '';
}
if (!isset($value['id'])){ // Если не существует $value['id'], то Выполняем действие
    $value['id'] = '';
    if(isset($value['src']){ // Если не существует $value['src'], то Выполняем действие
        $value['url'] = $value['src']:
    } else { 
        $value['url'] = $value['url'];
    }
}
Answer 2

$value = isset($meta['id']) ? (array)$meta : (array)$std;

READ ALSO
Не срабатывает условие в if

Не срабатывает условие в if

Задача: Дан инпут и кнопкаВ этот инпут вводится дата рождения в формате '31

100
Как я могу оптимизировать код?

Как я могу оптимизировать код?

Подскажите пожалуйста, как я могу оптимизировать такой код? Знаю, что как-то можно не писать кучу классов и id, а использовать переменную thisОднако,...

65
Замена слов в строке на ****

Замена слов в строке на ****

друзья! Помогите решить вопросСуть, у меня есть инпут, куда пользователь вводит слова и по нажатию на кнопку, они записываються в строку , также...

98