Почему отказивается работать post_geson? Всем привет. Вот сижу делаю класс для роботы с данными. Всё работает кроме функции json_decodeclass data {
var $data;
function get($data) {
if (isset($_GET[$data])) {
$data = $_GET[$data];
$data = trim(htmlentities($data));
$this->data = $data;
}
}
function post($data) {
if (isset($_POST[$data])) {
$data = $_POST[$data];
$data = trim(htmlentities($data));
$this->data = $data;
}
}
function post_inc($data) {
if (isset($_POST[$data])) {
$data = $_POST[$data];
$data = preg_replace('/[^0-9]/','',$data);
$this->data = $data;
}
}

function post_gson($data) {
if (isset($_POST[$data])) {
$json = $_POST[$data];
$json = json_decode($json);
$this->data = $data;
}
}

function string($data) {
$data = trim(htmlentities($data));
$this->data = $data;
}
function result() {
return $this->data;
}
}
Обращаюсь к нему примерно так$data->post_gson('data');
$json = $data->result();
print_r($json);
В итоге в переменной $json есть только "data" вместо ожидаемого мной масива. Как быть? С ооп рботаю не долго. А точнее одну ноч)

21 Авг 2019 в 07:07
297 +1
1
Ответы
1

Проблема заключается в том, что в методе post_gson вы записываете значение переменной jsonвместоjson вместо jsonвместоthis->data. Вам следует исправить это, чтобы метод правильно сохранял декодированный JSON объект. Вот исправленный код:

function post_gson($data) {
if (isset($_POST[$data])) {
$json = $_POST[$data];
$this->data = json_decode($json);
}
}

После этого ваш планируемый вызов

$data->post_gson('data');
json=json = json=data->result();
print_r(json);</code></pre><p>долженработатькорректноипеременнаяjson);</code></pre><p>должен работать корректно и переменная json);</code></pre><p>долженработатькорректноипеременнаяjson будет содержать декодированный JSON объект. Надеюсь, это поможет вам решить проблему.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир