我有一些函数应该返回一个数组,让它与另一个数组合并.
但是,有时候没有什么可以回归的.
这里最好的情况是什么?
>返回一个空数组并将其与完整的OR合并
>返回null,将返回值存储在变量中,检查该变量,然后根据需要将其合并.
我问这个是因为有时最短的路线并不是最快的,我真的不知道array_merge()在幕后做了什么.
解决方法:
返回空数组.比较两个选项的复杂性
>返回一个空数组并将其与完整的OR合并
>返回null,将返回值存储在变量中,检查该变量,然后根据需要将其合并.
当你编写一个函数时,除了你以外的人将会使用它(这包括你从6个月前开始不知道你当前在做什么).如果你返回null,那么使用你的函数的人需要知道它可能不会返回一个数组,所以只要他们使用你的函数,就需要将它们的变量包装在很多is_array或is_set检查中.这导致更难以维护代码,或者在返回数组时应用程序/系统工作时的错误,但是返回null时则不然.如果你的函数总是返回一个数组,人们可以安全地将它传递给期望数组的函数. (这就是为什么一些强类型执行的拥护者讨厌PHP.在像Java这样的语言中,这并不高兴,因为函数返回了特定类型的东西)
你对性能的关注是值得称赞的,但总的来说,内置的数组操作函数已经很好地调整,并且只是在一小部分时间内成为瓶颈.在日常代码运行中,检查变量值和合并零元素数组的性能优势可以忽略不计.
使用更干净的API,基准测试,然后优化您开始看到性能问题的特定情况.
标签:php,arrays,function,merge,performance
来源: https://codeday.me/bug/20190607/1191765.html