У меня есть файл PHP, который будет получать данные POST.Кроме того, у меня есть функция, которая имеет типизированный параметр.Если я передаю данные POST этой функции, она выдает FATAL ERROR.
Я изобразил сценарий в простом коде, чтобы воспроизвести проблему.
<?php
class User
{
public $id;
public $name;
}
$data = file_get_contents("php://input");
$param = json_decode($data);
function printData(Phone $var)
{
echo($var);
}
printData($param);
Я выполнил вышеупомянутый скрипт, используя POSTMANсо следующим объектом тела
{
"id":1,
"name":"jhon"
}
Я получаю следующую ошибку
[08-Jun-2019 01:43:51 UTC] PHP Fatal error: Uncaught TypeError: Argument 1 passed to printData() must be an instance of User, instance of stdClass given, called in /home/bala/server/test/test.php on line 17 and defined in /home/bala/server/test/test.php:12
Stack trace:
#0 /home/bala/server/test/test.php(17): printData(Object(stdClass))
#1 {main}
thrown in /home/bala/server/test/test.php on line 12
Как я могу передать объект этой функции со строгим типом?пожалуйста, помогите мне.