关联数组中的PHP三元语句来设置键和值?
发布时间:2020-12-13 18:00:45 所属栏目:PHP教程 来源:网络整理
导读:我一直在搜索和测试一段时间,但是我无法找到我想要实现的目标是否可行. 我想基于三元语句在定义数组时向数组添加键/值对. Array( 'Item 1' = 'Some value',(FALSE)? NULL : 'Item 2' = 'Another Value') 我的预期/想要的行为是结果: Array ( [Item 1] = Som
我一直在搜索和测试一段时间,但是我无法找到我想要实现的目标是否可行.
我想基于三元语句在定义数组时向数组添加键/值对. Array( 'Item 1' => 'Some value',(FALSE)? NULL : 'Item 2' => 'Another Value' ) 我的预期/想要的行为是结果: Array ( [Item 1] => Some value [Item 2] => Another Value ) 当陈述是真的时候: Array( 'Item 1' => 'Some value',(TRUE)? NULL : 'Item 2' => 'Another Value' ) 产量: Array ( [Item 1] => Some value ) 但相反,我得到: Array ( [Item 1] => Some value [] => Another Value ) 这导致问题,因为A)我不希望第一个元素存在于第一位和B)False条件值被分配给True条件值(在这种情况下为NULL,它将键设置为NULL []) 这非常奇特.我唯一的选择是使用标准的if(){}语句,如果条件为false(通过使用!),则将元素弹出到数组中? 注意:对于第2项具有空值是不可接受的,而如果初始条件为真,则根本不存在任何元素. 任何帮助将不胜感激!
您使用该三元运算符所做的就是确定密钥名称.无论如何,元素都将被放入数组中,它就在数组文字声明中.
使用内联表达式可以做的最好的事情是这样的: ['foo' => 'bar'] + (true ? [] : ['baz' => 42]) 实际上,你应该更好地写: $arr = ['foo' => 'bar']; if (true) { $arr['baz'] = 42; } 编写更紧凑的代码并不总是最佳目标,首先需要具有可读性和可理解性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |