如何将json对象传递给PHP7.1.x中具有类型化参数的方法

如何将json对象传递给PHP7.1.x中具有类型化参数的方法,php,rest,fatal-error,php-7.1,stdclass,Php,Rest,Fatal Error,Php 7.1,Stdclass,我有一个PHP文件,它将接收POST数据。此外,我有一个函数,它有一个类型化的参数。如果我将POST数据传递给该函数,它将抛出一个致命错误 我用一个简单的代码描述了这个场景来重现这个问题 函数打印数据(电话$var) 这行说明$var参数需要是Phone类的实例。但是,json\u decode()对特定类一无所知,只是将内容解码到泛型stdClass类的实例中 您需要使用$param中的值实例化Phone的实例,或者您应该修改printData()签名中的$var参数,以便不需要传入Phon

我有一个PHP文件,它将接收POST数据。此外,我有一个函数,它有一个类型化的参数。如果我将POST数据传递给该函数,它将抛出一个致命错误

我用一个简单的代码描述了这个场景来重现这个问题

函数打印数据(电话$var)
这行说明
$var
参数需要是
Phone
类的实例。但是,
json\u decode()
对特定类一无所知,只是将内容解码到泛型
stdClass
类的实例中

您需要使用
$param
中的值实例化
Phone
的实例,或者您应该修改
printData()
签名中的
$var
参数,以便不需要传入
Phone
的实例;例如,
函数printData($var)

{
    "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