首页 > 解决方案 > 如果密钥不存在,则返回密钥本身 php

问题描述

这是我的代码,如果语句不存在,我希望它返回最后一行代码中的“某物”之类的键值,但它不起作用

function getTranslation($translations, $lang, $statement)
{
    $lang = $translations[$lang];
    $statement = $lang[$statement];
    return $statment;
}

$translations = [
    'fa' => ['Hello!' => 'hi!', 'Hi!' => 'hi!'],
    'fr' => ['Hello!' => 'Bonjour!']
];

echo getTranslation($translations, 'fa', 'Hi!');
echo PHP_EOL;
echo getTranslation($translations, 'fr', 'Hello!');
echo PHP_EOL;
echo getTranslation($translations, 'fr', 'Something');

标签: phparrays

解决方案


您可以使用 null coalesce 运算符 ??(在 PHP 7 中引入)来判断数组元素是否不存在,然后返回一个默认值 - 在这种情况下$statement......

function getTranslation($translations, $lang, $statement)
{
    $lang = $translations[$lang];
    return $lang[$statement] ?? $statement;
}

推荐阅读