PHP:将完整数组与空数组合并还是先检查 isset()?

标签 php arrays function merge performance

我有一些函数应该返回一个数组,以便与另一个数组合并。

然而,有时没有任何东西可以返回。 这里最好的场景是什么?

  1. 返回一个空数组并将其与完整的数组合并或
  2. 返回 null,将返回值存储在一个变量中,检查该变量,然后在需要时合并它。

我问这个是因为有时最短路线并不是最快的,而且我真的不知道 array_merge() 在幕后做了什么。

最佳答案

返回空数组。比较两个选项的复杂性

  1. 返回一个空数组并将其与完整的数组合并或
  2. 返回 null,将返回值存储在一个变量中,检查该变量,然后在需要时合并它。

当您编写一个函数时,除您之外的其他人都会使用它(这包括 6 个月后的您,他们不知道您当前在做什么)。如果您返回 null,使用您的函数的人需要知道它可能不会返回数组,因此无论何时他们使用您的函数都需要将他们的变量包装在很多 is_arrayis_set 检查。这会导致以后更难维护代码,或者当您的应用程序/系统在返回数组时工作但在返回 null 时不工作时出现错误。如果你的函数总是返回一个数组,人们可以安全地将它传递给需要数组的函数。 (这就是为什么一些强类型执行的拥护者讨厌 PHP。在像 Java 这样的语言中,这并不令人高兴,因为函数返回特定类型的东西)

您对性能的关注值得称赞,但一般来说,内置的数组操作函数都经过了很好的调整,并且只会在一小部分时间成为瓶颈。在日常代码运行中,检查变量值和在零元素数组中合并的性能优势将可以忽略不计。

使用更简洁的 API、基准测试,然后优化您开始发现性能问题的特定情况。

关于PHP:将完整数组与空数组合并还是先检查 isset()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2113158/

相关文章:

javascript - 将数组从 PHP 返回到 JavaScript,无需 JSON

c - 数组分离---C

php - 在 php 函数中使用外部包含文件

c++ - 检查派生中基类的模板参数

类与函数

php - 有什么方法可以使PHP在未设置/ undefined variable 和数组索引等中止?

javascript - 制作蓝色乐谱动画条

php - 从数据库记录范围中提取高值和低值的算法

java - Java 中最后一个数据 block 的正确处理。 boolean 代币还是债券外指数?

php - set_time_limit 不影响 PHP-CLI