Передача глобальной переменной в массив

81
8

Я пытаюсь передать глобальную переменную в функцию отправки после тяжести. Пока все возвращается хорошо, но глобальная переменная.

Вот где я объявляю глобальное значение в другой функции (для ясности я удалял некоторые другие биты):

$gid = null;
function things() {
$jsondata = file_get_contents('http://urltoothers.com');
$json = json_decode($jsondata, true);
global $gid;
$gid = $json['id_of_json_thing'];
}

Это то, что у меня есть в моей другой функции:

global $gid;
$body = array(
'name' => rgar( $entry, '1' ),
'email' => rgar( $entry, '2' ),
'id' => $gid,
);
$json = json_encode($body);

print_r($json);

Как только я отправлю, я вижу, что выходные результаты имеют id как null:

{"name":"input_1","email":"example@example.com","id":null}

Нужно ли назначать глобальную переменную другой переменной? Клянусь, я сделал это раньше, и я не могу вспомнить, что нужно сделать. Это было время.

спросил(а) 2016-03-16T06:40:00+03:00 4 года, 7 месяцев назад
1
Решение
81

Я думаю, проблема может заключаться в установке $gid = null; вне любой функции. Это можно легко сбросить во время потока программы. Если вам нужно, чтобы он начинался с нуля, установите его внутри своей функции "вещи"

global $gid;
$gid = null;
$gid = $json['id_of_json_thing'];

И, конечно же, как сказал Раслатт, убедитесь, что $ json ['id_of_json_thing']; сам по себе не является нулевым;

ответил(а) 2016-04-05T19:40:00+03:00 4 года, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема