【问题标题】:weird array syntax奇怪的数组语法
【发布时间】:2010-04-23 13:55:28
【问题描述】:

我试图弄清楚我被赋予的功能是如何工作的——或者更确切地说是不工作。有问题的领域包括这样的数组表示法:

$small[$end[$i]{0}]

认为这个想法是将“0”附加到$end[$i] 的值上,并将其用于$small 的索引。但它在 PHP5.3 中不起作用。这是不推荐使用的语法吗?它是否试图按照我的想法去做?

【问题讨论】:

  • 不能像“php 因语法错误中断”那样工作,还是不能像“应该发生的事情没有发生”那样工作?
  • "注意:字符串 s 也可以使用大括号访问,如 $str{42},用于相同目的。但是,从 PHP 5.3.0 开始不推荐使用此语法。请改用方括号,例如 $str[42]。” php.net/manual/en/language.types.string.php
  • @Lo'oris: $end[$i]{0} 似乎正在评估为 null 或 ''。
  • @Tom Haigh:既然您已经指出了这一点,我确实记得可以通过这种方式访问​​字符串。但事实证明,如果字符串是数字,它就不起作用。例如$foo=200; $foo[0]!=2;我觉得解决办法是把语法换成substr($foo,1);
  • @dnagirl: "$foo=200;"那不是一个字符串。使用 substr() 可能会更慢,并且仅在 int 被隐式转换为字符串时才有效。

标签: php syntax arrays


【解决方案1】:

它从$end[$i] 字符串中获取第一个字符,然后使用该字符作为数组键访问$small 数组。

编辑:

自从$foo=200; $foo[0] != 2;//=='', 你有什么建议来获得 最左边的数字时的大小 号码不详?

最简单的方法是 PHP 中的substr($foo, 0, 1)

如果您使用的是强类型语言,您可能有兴趣从我的另一个答案中阅读一些指标:How can you get the first digit in an int (C#)?

【讨论】:

  • 感谢您纠正我对它试图做什么的理解。 B
猜你喜欢
  • 2013-08-10
  • 1970-01-01
  • 2011-12-27
  • 2011-01-03
  • 1970-01-01
  • 2013-09-05
  • 2017-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多