PHP 7有一个新特性,就是返回类型声明。
我们可以返回类型为'string'的值,例如:
function myFunction ($a) : string { }
我们也可以返回一个像 'array'(数组)一样的数据类型:
function myFunction ($a) : array { }
但是我们如何声明“JSON”类型的响应呢?
在PHP中,JSON不是本地数据类型,它是一个结构化的字符串。因此,如果您的函数返回JSON,则返回的是一个字符串。
所以,function myFunction ($a) : string { }
是正确的。
如果您想进一步描述返回值,应该使用文档。
/**
* @return string $jsonString The returned string contains JSON
*/
function myFunction ($a) : string { }
对于PHP中的序列化对象,同样也适用。序列化对象是一个结构化字符串。
我喜欢@KhorneHoly的回答。不过,你可能需要考虑一个更好的函数名(myFunction
只是一个虚拟名称,对吧?):
function getJson($a) : string { }
class PropertyNormalizer
{
/**
* @param Object $doc
* @return NormalisedProperty
*/
public function normalize(Object $doc): Object
{
$property = new NormalisedProperty($doc);
// ...
return $property;
}
}
__toString
方法,那么你的调用代码甚至不需要知道差异。 - iainn