如何将json对象传递给PHP7.1.x中具有类型化参数的方法
我有一个PHP文件,它将接收POST数据。此外,我有一个函数,它有一个类型化的参数。如果我将POST数据传递给该函数,它将抛出一个致命错误 我用一个简单的代码描述了这个场景来重现这个问题如何将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
函数打印数据(电话$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