PHP 8.1.0 Alpha 2 available for testing

Locale::composeLocale

locale_compose

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

Locale::composeLocale -- locale_compose正しく並べ替えて区切られたロケール ID を返す

説明

オブジェクト指向型

public static Locale::composeLocale(array $subtags): string

手続き型

locale_compose(array $subtags): string

正しく並べ替えて区切られたロケール ID を返します。 キーが特定のロケール ID サブタグを表し、 サブタグの値がそのキーに対応する値となります。

パラメータ

subtags

キーと値のペアを含む配列。 キーには特定のロケール ID サブタグを指定し、 そのサブタグの値を関連付けます。

注意:

サブタグ 'variant''private' には最大で 15 の値を指定できますが、 'extlang' には最大で 3 つの値しか指定できません。 たとえば、variant には 0 から 14 までの サフィックスをつけることができ、 配列のキーは variant0, variant1, ..., variant14 となります。 返されるロケール ID において、このサブタグは variant0variant1variant2、……の順に並びます。

代わりに、'variant''private' および 'extlang' の値は、特定のキー (例 'variant') に対して配列を指定できます。 この場合、サブタグに適用される値の数には制限がありません。

返り値

対応するロケール識別子を返します。

例1 locale_compose() の例

<?php
$arr 
= array(
    
'language'=>'en',
    
'script'  =>'Hans',
    
'region'  =>'CN',
    
'variant2'=>'rozaj',
    
'variant1'=>'nedis',
    
'private1'=>'prv1',
    
'private2'=>'prv2',
);
echo 
locale_compose($arr);
?>

例2 オブジェクト指向の例

<?php
$arr 
= array(
    
'language'=>'en' ,
    
'script'  =>'Hans',
    
'region'  =>'CN',
    
'variant2'=>'rozaj',
    
'variant1'=>'nedis',
    
'private1'=>'prv1',
    
'private2'=>'prv2',
);
echo 
Locale::composeLocale($arr);
?>

上の例の出力は以下となります。

Locale: en_Hans_CN_nedis_rozaj_x_prv1_prv2

例3 サブタグの制限

subtags に、 数字が末尾に付く複数のキーが別々に指定された場合、 サポートされていないキーは黙って無視され (以下の例では、'extlang3')、 結果は末尾の数値の順に並びます。 サブタグの値に配列が指定された場合は、 この制限はなく、結果は与えられた順に並びます。

<?php
$arr 
= array(
    
'language' => 'en',
    
'script'   => 'Hans',
    
'region'   => 'CN',
    
'extlang3' => 'd',
    
'extlang2' => 'c',
    
'extlang1' => 'b',
    
'extlang0' => 'a',
);
echo 
locale_compose($arr), PHP_EOL;

$arr = array(
    
'language' => 'en',
    
'script'   => 'Hans',
    
'region'   => 'CN',
    
'extlang'  => ['a''b''c''d'],
);
echo 
locale_compose($arr), PHP_EOL;
?>

上の例の出力は以下となります。

en_a_b_c_Hans_CN
en_a_b_c_d_Hans_CN

参考

  • locale_parse() - ロケール ID のサブタグ要素を連想配列で返す

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top