为了账号安全,请及时绑定邮箱和手机立即绑定

省略 PHP 三元和空合并运算符中的 “else”

省略 PHP 三元和空合并运算符中的 “else”

PHP
守着星空守着你 2022-08-05 16:13:20
我正在阅读并尝试PHP中的三元和空合并运算符。所以,而不是写作if (isset($array['array_key'])){    $another_array[0]['another_array_key'] = $array['array_key'];}else{    // Do some code here...}而不是用空合并或三元运算符缩短它,我试图用空合并进一步缩短代码,但没有“else”部分,因为我并不真正需要。我搜索了它,发现了一些不是我想要的解决方案。我试过了这个,两个解决方案都有效!$another_array[0]['another_array_key'] = $array['array_key'] ??$another_array[0]['another_array_key'] = $array['array_key'] ? :print_r($another_array);注意没有 ;在上面一行的末尾。我的问题是:这是一段可以接受的代码吗?我认为可能很难用评论来解释它,因为它在一段时间后可能会成为可读性的负担。抱歉,如果这是一个类似的问题 - 我真的没有时间检查它们,因为Stack Overflow建议了很多。这将是一个“完整”的代码示例:<?php$another_array = [];$array = [    'name' => 'Ivan The Terrible',    'mobile' => '1234567890',    'email' => 'tester@test.com'];if (isset($array['name'])){    $another_array[0]['full_name'] = $array['name'];}$another_array[0]['occupation'] = $array['occupation'] ??// or $another_array[0]['occupation'] = $array['occupation'] ? :print_r($another_array);
查看完整描述

1 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

可重用性、可维护性...如果你想测试许多可能的数组键,然后将它们添加到最终数组中,没有什么能阻止你创建一个第三个数组,它将保存键以检查并循环通过它:


<?php


$another_array = [];


$array = [

    'name' => 'Ivan The Terrible',

    'mobile' => '1234567890',

    'email' => 'tester@test.com'

];


$keysToCheck = [

    // key_in_the_source_array => key_in_the_target

    'name' => 'full_name',

    'occupation' => 'occupation'

    // if you want to test more keys, just add them there

];


foreach ($keysToCheck as $source => $target)

{

    if (isset($array[$source]))

    {

         $another_array[0][$target] = $array[$source];

    }

}


print_r($another_array);

请注意:


$another_array[0]['occupation'] = $array['occupation'] ??


print_r($another_array);

评估为


$another_array[0]['occupation'] = $array['occupation'] ?? print_r($another_array);

如果你在后面添加另一个,你会注意到,由于print_r()的返回值print_r($another_array);$another_array[0]['occupation'] => true


查看完整回答
反对 回复 2022-08-05
  • 1 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信