PHP ошибка в синтаксисе

есть вот такой код:

<?php 
    require "db.php";  
    header('Content-Type: application/json; charset=utf-8');

    $login = $_SESSION['logged_user']->login;
    $settings = R::findOne('users', 'WHERE `login`=?', [$login]);

    if ($_POST['type'] == 'simple'){
        $settings->$_POST['parameter'] = $_POST['value'];
        R::store($settings);
    }
    $ArrayParametr = [
        'sound',
        $settings->sound
    ];
    $ArrayParametr = [
        'theme',
        $settings->theme
    ];
    $ArrayParametr = [
        'block',
        $settings->block
    ];
    $ArrayParametr = [
        'language',
        $settings->language
    ];
    $ArrayParametr = [
        'vibro',
        $settings->vibro
    ];
    echo( json($ArrayParametr) );

?>

Как видите в 8 строке, я не буквально задаю параметр, а беру его из POST запроса. Подозреваю что ошибка там (500 ошибка), валидатор выдает что всё в порядке. Тем не менее скрипт не работает. Что может быть не так? А вернее как правильно написать 8 строку?


Ответы (1 шт):

Автор решения: artemgh

Спасибо всём, особенно Алексею Шиманскому. Вот итоговый рабочий код:

<?php 
    require "db.php";  
    header('Content-Type: application/json; charset=utf-8');

    $login = $_SESSION['logged_user']->login;
    $settings = R::findOne('users', 'WHERE `login`=?', [$login]);

    if ($_POST['type'] == 'simple'){
        $settings->{$_POST['parameter']} = $_POST['value'];
        R::store($settings);
    }
    $ArrayParameter[] = [
        'sound',
        $settings->sound
    ];
    $ArrayParameter[] = [
        'theme',
        $settings->theme
    ];
    $ArrayParameter[] = [
        'block',
        $settings->block
    ];
    $ArrayParameter[] = [
        'language',
        $settings->language
    ];
    $ArrayParameter[] = [
        'vibro',
        $settings->vibro
    ];

    echo( json_encode($ArrayParameter));
?>

Ошибка была в 8 строке, после названия массива не поставил квадратные скобки, поскольку массив двумерный и плюс вместо json, надо использовать json_encode.

→ Ссылка