PHP中,在处理函数返回值时,每每存在一些意想不到的“坑”,尤其是对付那些没有充分理解函数行为的人来说,这些“坑”每每让人措手不及。
一样平常来说,函数返回的数据类型该当是确定的,例如整数(Int),字符串(String)或数组
(Array)等。然而,PHP有时却并非如此,很多函数返回的数据类型是不固定的,这给利用这些函数带来了额外的繁芜性。

以json_decode()函数为例,正常情形下,这个函数会将一个JSON字符串转换为数组或工具并返回。有些情形下,它的行为可能会让人大跌眼镜。在没有引号的值true、false和null的情形下,它会相应地返回true、false和null。如果JSON字符串无法被解码,或者编码数据的深度超过了嵌套限定,它将返回null。
大略来说,正常情形下json_decode()函数会返回或者工具数组,其他情形下会返回true,false,null。如果没有仔细阅读文档,利用这个函数的人可能会在涌现问题时感到十分困惑。这种具有不愿定返回类型的函数在PHP中并不罕见,PHP manual将这种返回类型称为“mixed”,利用这类函数须要我们程序员具备较高的风险意识和丰富的履历储备。因此,在利用PHP函数时,一定要仔细阅读文档,以便理解函数的预期行为和可能的陷阱。