その言語にマッチする言語タグの一覧を検索する

# Locale::lookup

# locale_lookup

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

Locale::lookup -- locale_lookup — その言語にマッチする言語タグの一覧を検索する

### 説明

オブジェクト指向型

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

`languageTag` の中から、 `locale` で指定した言語の範囲に最もマッチするものを RFC 4647 の検索アルゴリズムで調べます。

### パラメータ

`languageTag`

  `locale` と比較したい言語タグの一覧を含む配列。 最大で 100 件まで指定できます。

`locale`

  調べる対象となる言語の範囲として使用するロケール。

`canonicalize`

  true の場合は、引数を正式な形式に変換してからマッチを行います。

`defaultLocale`

  マッチしなかったときに使用するロケール。

### 戻り値

最も近い言語タグ、あるいはデフォルトの値を返します。

`locale` の長さが `INTL_MAX_LOCALE_LEN` を超えた場合、`null` を返します。

### 変更履歴

バージョン | 説明
--- | ---
7.4.0 | `defaultLocale` は、nullable になりました。

### 例

例1 locale_lookup() の例

    <?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 オブジェクト指向の例

    <?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() - 言語タグフィルタがロケールにマッチするかどうかを調べる

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