Переменные php выдают ошибку при передаче внутри CURL

У меня есть внешний API в CURL, который я использую для отправки данных. Ниже приведена часть кода

 CURLOPT_POSTFIELDS => '{
    "name": "Samuel",
    "age":"21"
}',

Он отлично работает, однако, если я преобразую код в следующую форму, он выдает ошибку

{ошибка: {сообщение: Неожиданный токен i в JSON на позиции 19}}

$name = "Samuel";
$age = "21";

CURLOPT_POSTFIELDS => '{
  "name": $name,
  "age": $age
}',

Может кто-нибудь, пожалуйста, объясните, как я могу передать данные


person user3732711    schedule 05.07.2021    source источник
comment
Рассматривали ли вы создание полезной нагрузки из реального массива и с помощью json_encode?   -  person mario    schedule 05.07.2021
comment
Вы неправильно объединяете переменную CURLOPT_POSTFIELDS => '{ "name": '.$name.', "age": '.$age.' }',   -  person Andrea Olivato    schedule 05.07.2021
comment
@AndreaOlivato я пытался, но все равно выдает ту же ошибку   -  person user3732711    schedule 05.07.2021
comment
Отсутствовали двойные кавычки для заключения строки. CURLOPT_POSTFIELDS => '{ "name": "'.$name.'", "age": "'.$age.'" }', В любом случае, предложение @mario — более структурированный подход. Создайте массив, затем используйте json_encode   -  person Andrea Olivato    schedule 05.07.2021
comment
я попытался создать массив, но он выдал какую-то другую ошибку. Воспользовался вашей идеей, вроде работает   -  person user3732711    schedule 05.07.2021