Если вы хотите передать переменные внутри строк в PHP, вы должны использовать двойные кавычки "
вместо одинарных кавычек '
.
$foo = "bar";
echo 'Hello $foo'; // Outputs 'Hello $foo'
echo "Hello $foo"; // Outputs 'Hello bar'
Следующий код должен работать, он такой же, но обернут в"
(вместо '
) и экранировал исходные кавычки с помощью \"
.
$body->append("{
\"username\": \"$username\",
\"password\": \"$password\",
\"attributes\": {
\"name\": \"$name\",
\"surname\": \"$surname\",
\"email\": \"$mail\"
}
}");
Однако в этом случае это может привести к путанице, вместо этого вы можете использовать конкатенацию с .
между строкамии переменные
'"username": "' . $username . '"
Или просто используйте решение DarkBee , которое немного более элегантно для ваших целей.