在PHP中,IntlChar charDirection()函数的作用是返回给定字符的方向属性

介绍

在PHP中,IntlChar charDirection()函数用于返回给定字符的方向属性。该函数是PHP Internationalization Functions扩展提供的一种函数,旨在支持 PHP 7.0.0 及更高版本。

IntlChar::charDirection ( mixed $codepoint ) : int

该函数需要传递一个参数,参数类型为mixed,代表要查询的Unicode字符或Unicode字符的代码点。

函数返回一个整型值,代表给定字符的方向属性。如果该字符不存在方向属性,则返回0。

字符方向属性

在 Unicode 标准中,每个字符都有一个方向属性。基本上,Unicode 字符按照以下方向属性分为四类:

左到右文本(L)

右到左文本(R)

强制从左到右的文本(LRE 或 LRO)

强制从右到左的文本(RLE 或 RLO)

左到右文本(L)

左到右文本是指顺序读取字符的文本。单词和句子从左往右开始,并左对齐排列。

右到左文本(R)

右到左文本是指倒序读取字符的文本。单词和句子从右往左开始,并右对齐排列。

强制从左到右的文本(LRE 或 LRO)

在强制从左到右的文本中,包含顺序文本的语句会在两端包含嵌套顺序字符的一个嵌套结构。在文本的结尾,顺序字符会返回到外部文本,使得整个嵌套结构最终有个左到右文本。

强制从右到左的文本(RLE 或 RLO)

在强制从右到左的文本中,包含逆序文本的语句会在两端包含嵌套逆序字符的一个嵌套结构。在文本的结尾,逆序字符会返回到外部文本,使得整个嵌套结构最终有个右到左文本。

实例

让我们看一下如何使用IntlChar charDirection()函数。下面的示例将输出字符“Hello world!” 的数组形式及其方向属性:

$hello = "Hello world!";

foreach (preg_split('//u', $hello, -1, PREG_SPLIT_NO_EMPTY) as $char) {

printf('%s [%x]: %d' . "\n", $char, IntlChar::ord($char), IntlChar::charDirection($char));

}

上面的PHP代码将生成以下输出:

H [48]: 0

e [65]: 0

l [6c]: 0

l [6c]: 0

o [6f]: 0

  [20]: 0

w [77]: 0

o [6f]: 0

r [72]: 0

l [6c]: 0

d [64]: 0

! [21]: 0

上面的输出表明,所有字符都具有方向属性0,因此它们都是从左到右的文本。

后端开发标签