【问题标题】:standard / readable array declaration and using标准/可读数组声明和使用
【发布时间】:2011-04-11 15:57:43
【问题描述】:

您认为更标准/可读/高效的数组声明代码:

一种方式:

$days = array(1=>'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');

然后使用:$days[$value]

或第二种方式:

$days = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');

然后使用:$days[$value-1]

更新:我无法确定这些值是否在 [0-6] 中,因为我不提供 3 种方式。

【问题讨论】:

  • 我会使用从零开始的(第二个),以便直接符合内部 PHP 表示(例如,date('w'))。另外,请注意 ISO-8601 数字表示 (N)。
  • @jensgram:当数组与工作日无关时会发生什么? ;)
  • @fabrik 这个数组键是从哪里来的?
  • @Shrapnel:没有人说我们必须坚持这个例子。至少 OP 没有。
  • @fabrik 一般来说,我会根据我正在查找的内容索引我的数组。因此,一般来说,备选方案 1,当数据是(或应该是)从零开始时直接转换为备选方案 2。 另外,我会根据整体可读性来判断,而不是 +/- 1 个 CPU 周期。

标签: php arrays code-standards


【解决方案1】:

第三种方式怎么样:

$days = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');

并以如下方式访问它:

$days[$value]

通过确保$value 的值介于[0,6] 之间

【讨论】:

  • 这只有在我们坚持这个例子时才适用。
  • 我不能来自数据库查询,这不取决于我
【解决方案2】:

一个有趣的:

$days = array('Zer','Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');

(我的一个朋友曾经用过一个月的名字“Nulleary”)
但说真的,这取决于这个数组的来源。
对于这个特定的例子,它应该只是date("D",$tstamp);

虽然整个问题对我来说可以忽略不计。
我经常只使用

$days = explode(" ",'Sun Mon Tue Wed Thu Fri Sat');

并发现它非常方便。

【讨论】:

  • @stereofrog:谢谢,这很有趣。有趣的是懒惰的程序员住在这里。
  • @stereofrog 哎呀!你是对的。现在就去检查我的服务器——它一定是因为超载而烧毁了! :)
【解决方案3】:

肯定是第一个(正确定义键时)。

在第二个中你需要做一个减号(提取)这是一个不必要的cpu​​循环使你的代码可读性和可维护性降低。

编辑:我希望你们所有懒惰的程序员都在那里快乐。

【讨论】:

  • 哦,我的天啊!一个完整的 CPU 周期!真是一场灾难。
  • 是的,阿喀琉斯永远不会超过乌龟
  • 对不起,我绝对不喜欢这样的对话。
猜你喜欢
  • 2014-08-25
  • 2016-12-07
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-11
  • 2022-01-07
  • 2021-04-03
相关资源
最近更新 更多