PHP琐事在这里.
如果我们声明一个这样的数组:
<?php $arr = [ 'foo' => 'bar', NULL => 'hello' ]; ?>
Run Code Online (Sandbox Code Playgroud)
我们可以像这样访问它
print $arr[NULL];
Run Code Online (Sandbox Code Playgroud)
这将打印hello
.为什么这有用,相关或必要?它是PHP错误还是功能?
我唯一的想法是,您可以使用NULL键声明数组等于错误消息,以向使用NULL键的任何人解释其键为空:
$arr[NULL] = 'Warning you have used a null key, did you mean to?';
Run Code Online (Sandbox Code Playgroud)
有人发现这个有用吗?似乎是造成弊大于利的事情.
Sal*_*n A 60
从手册中引用:
Null将被转换为空字符串,即键null实际上将存储在""下.
有关如何转换键的其他详细信息如下:
密钥可以是整数或字符串.值可以是任何类型.
此外,还会发生以下关键演员:
- 包含有效十进制整数的字符串,除非数字前面带有+号,否则将转换为整数类型.例如,键"8"实际上将存储在8下.另一方面,"08"将不会被转换,因为它不是有效的十进制整数.
- 浮点数也会转换为整数,这意味着小数部分将被截断.例如,密钥8.7实际上将存储在8下.
- Bool也会被转换为整数,即键值true实际上将存储在1下,键值false则在0下.
- Null将被转换为空字符串,即键null实际上将存储在""下.
- 数组和对象不能用作键.这样做会导致警告:非法偏移类型.
至于这是有用还是必要,这是有争议的.系统会要求您使用整数或字符串键,并且您已收到有关隐式密钥转换的警告.
mik*_*ike 10
我发现在使用类访问db时,Null键有用,它可以使用其中一个列值作为返回数组的键.某些列值可能为null.
给定一个由关联 php 数组填充的表单 API,我发现使用空键值来指示数据库中的 NULL 值很有用。例如:
$this->addElement('select', 'foreignkey_id', array(
'label'=>'Add a Poll',
'multiOptions' => array(
null => 'No value selected',
'0' => 'Element with ID0 selected'
)
));
Run Code Online (Sandbox Code Playgroud)
在这种情况下,null 映射到数据库列外键_id 中的 NULL(默认)值,0 映射到键为 0 的行。
然而,在这个特定的用例之外,我倾向于认为 DCoder 的评论在这里是权威的......
归档时间: |
|
查看次数: |
21217 次 |
最近记录: |