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|false

过程式风格

locale_compose(array $subtags): string|false

返回正确排序和分隔的区域设置 ID,键标识特定区域设置 ID 子标签,值是关联的子标签值。

参数

subtags

一个 array,包含键值对列表,其中键标识特定区域设置 ID 子标签,值是关联的子标签值。

注意:

The 'variant''private' 子标签最多可以取 15 个值,而 'extlang' 最多可以取 3 个值。例如,变体允许使用 0-14 范围内的后缀。因此,输入数组的键可以是 variant0variant1、…、variant14。在返回的区域设置 ID 中,子标签按后缀排序,导致 variant0 之后是 variant1,然后是 variant2,依此类推。

或者,'variant''private''extlang' 值可以作为特定键(例如 'variant')下的数组指定。在这种情况下,对识别出的子标签数量没有限制。

返回值

相应的区域设置标识符,或 subtags 为空时为 false

示例

示例 #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 OO 示例

<?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'),并在结果中按数字后缀排序。如果 subtags 作为 array 给出,则没有限制;顺序与给出的顺序相同。

<?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 子标签元素的键值数组

添加笔记

用户贡献的笔记

此页面没有用户贡献的笔记。
To Top