Searches the language tag list for the best match to the language

# Locale::lookup

# locale_lookup

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::lookup -- locale_lookup — Searches the language tag list for the best match to the language

### 说明

面向对象风格

public static function Locale::lookup(
array `$languageTag`,
string `$locale`,
bool `$canonicalize` = `false`,
?string `$defaultLocale` = `null`
): ?string

过程化风格

function locale_lookup(
array `$languageTag`,
string `$locale`,
bool `$canonicalize` = `false`,
?string `$defaultLocale` = `null`
): ?string

Searches the items in `languageTag` for the best match to the language range specified in `locale` according to RFC 4647's lookup algorithm.

### 参数

`languageTag`

  An array containing a list of language tags to compare to `locale`. Maximum 100 items allowed.

`locale`

  The locale to use as the language range when matching.

`canonicalize`

  If true, the arguments will be converted to canonical form before matching.

`defaultLocale`

  The locale to use if no match is found.

### 返回值

The closest matching language tag or default value.

当 `locale` 的长度超过 `INTL_MAX_LOCALE_LEN` 时返回 `null`。

### 更新日志

版本 | 说明
--- | ---
7.4.0 | `defaultLocale` is nullable now.

### 示例

示例 #1 locale_lookup() example

    <?php
    $arr = array(
        'de-DEVA',
        'de-DE-1996',
        'de',
        'de-De'
    );
    echo locale_lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
    ?>

示例 #2 OO example

    <?php
    $arr = array(
        'de-DEVA',
        'de-DE-1996',
        'de',
        'de-De'
    );
    echo Locale::lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
    ?>

以上示例会输出：

    de_de_1996

### 参见

- locale_filter_matches() - Checks if a language tag filter matches with locale

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open