【发布时间】:2026-01-25 07:10:01
【问题描述】:
我有这个代码
$arr['... key'] = 'value';
这有效且不返回错误,但我感兴趣的是,数组键有多少合理性,例如 '... key' ? (这里,在点之后,也是空间)。由于这些键,可能会遇到一些问题?
【问题讨论】:
-
无论你输入什么,字符串都是字符串 :-)
我有这个代码
$arr['... key'] = 'value';
这有效且不返回错误,但我感兴趣的是,数组键有多少合理性,例如 '... key' ? (这里,在点之后,也是空间)。由于这些键,可能会遇到一些问题?
【问题讨论】:
没有理由不能使用任何你想要的字符串作为键名。它不会导致任何错误或其他问题。您可能很难记住或跟踪奇怪的键,并且在设计方面使用它们可能不是一个好主意,但 PHP 不在乎。
【讨论】:
认真地说:如果你想使用 ... 没关系,任何刺痛都可以,但不常见,可能会让其他人感到困惑,某些字体\屏幕可能会使它们难以阅读 - 所以我不会,但如果你愿意,你可以。
键可以是整数或字符串。该值可以是任何 类型。 此外,还会发生以下关键转换:
- 包含有效整数的字符串将被转换为整数类型。例如。键“8”实际上将存储在 8 下。另一方面
"08" 不会被强制转换,因为它不是有效的十进制整数。- 浮点数也被转换为整数,这意味着小数部分将被截断。例如。密钥 8.7 将实际存储 8 岁以下。
- Bools 也被转换为整数,即键 true 将实际存储在 1 下,而键 false 将存储在 0 下。
- Null 将被强制转换为空字符串,即键 null 将实际存储在 "" 下。
- 数组和对象不能用作键。这样做会导致警告:Illegal offset type。
【讨论】: