我有一些应该返回一个数组的函数,让它与另一个数组合并。
然而,有时候没有什么可以回归的。 这里最好的方案是什么?
我问这个是因为有时最短的路线并不是最快的,而且我真的不知道array_merge()在幕后做了什么。
答案 0 :(得分:4)
返回空数组。比较两个选项的复杂性
当你编写一个函数时,除了你以外的人将会使用它(这包括你从6个月前开始不知道你当前在做什么)。如果你返回null,那么使用你的函数的人需要知道它可能不会返回一个数组,所以只要他们使用你的函数,就需要将他们的变量包装在很多is_array
或is_set
个检查中。这导致更难以维护代码,或者在返回数组时应用程序/系统工作时的错误,但是返回null时则不然。如果你的函数总是返回一个数组,人们可以安全地将它传递给期望数组的函数。 (这就是为什么一些强类型执行的拥护者讨厌PHP。在像Java这样的语言中,这并不高兴,因为函数有返回特定类型的东西)
你对性能的关注是值得称赞的,但总的来说,内置的数组操作函数已经很好地调整,并且只会在一小部分时间内成为瓶颈。在日常代码运行中,检查变量值和合并零元素数组的性能优势可以忽略不计。
使用更干净的API,基准测试,然后优化您开始发现性能问题的特定情况。
答案 1 :(得分:1)
如果没有要返回的内容,只返回一个空数组。这听起来最符合逻辑。
答案 2 :(得分:1)
我会去...
如果没有任何内容,则返回一个空数组 错
返回false(或抛出异常) 如果发生错误
......虽然这意味着你必须做一些额外的工作,但这可能是更好的做法,并且从长远来看会带来红利。 (带有返回值的array_merging可能看起来很整洁,但除非发生任何错误,否则它有点可疑。)