Php 简明教程

PHP – IntlChar

在 PHP7 中,引入了新的 IntlChar 类。该类提供对可用于访问 Unicode 字符相关信息的大量实用工具方法的访问权限。Intl 类中有很多静态方法和常量。它们紧密遵守底层 ICU(Unicode 的国际组件)库所使用的名称和行为。

Note 您需要在系统中的 PHP 程序中启用 Intl 扩展。要启用它,请打开 php.ini 文件并取消注释(从该行删除前导分号)。

extension=intl

以下内容通过示例展示 Intl 类中的一些静态函数:

IntlChar::charAge

此函数获取码点的“年代”

public static IntlChar::charAge(int|string $codepoint): ?array

“年代”表示将码点首次指定(作为非字符或私用)或分配字符后的 Unicode 版本。

Example

请看以下示例:

<?php
   var_dump(IntlChar::charage("\u{2603}"));
?>

它将生成以下 output

array(4) {
   [0]=>
   int(1)
   [1]=>
   int(1)
   [2]=>
   int(0)
   [3]=>
   int(0)
}

IntlChar::charFromName

charFromName() 函数通过名称查找 Unicode 字符并返回其码点值。

public static IntlChar::charFromName(string $name,
   int $type = IntlChar::UNICODE_CHAR_NAME): ?int

使用查找时要用的名称类型参数组。可以是以下任何一个常量 -

  1. IntlChar::UNICODE_CHAR_NAME (default)

  2. IntlChar::UNICODE_10_CHAR_NAME

  3. IntlChar::EXTENDED_CHAR_NAME

  4. IntlChar::CHAR_NAME_ALIAS

  5. IntlChar::CHAR_NAME_CHOICE_COUNT

Example

请看以下示例:

<?php
   var_dump(IntlChar::charFromName("LATIN CAPITAL LETTER A"));
   var_dump(IntlChar::charFromName("SNOWMAN"));
?>

它将生成以下 output

int(65)
int(9731)

IntlChar::charName

charName() 函数检索 Unicode 字符的名称

public static IntlChar::charName(int|string $codepoint,
   int $type = IntlChar::UNICODE_CHAR_NAME): ?string

Example

请看以下示例:

<?php
   var_dump(IntlChar::charName(".", IntlChar::UNICODE_CHAR_NAME));
   var_dump(IntlChar::charName("\u{2603}"));
?>

它将生成以下 output

string(9) "FULL STOP"
string(7) "SNOWMAN"

IntlChar::isalpha

isalpha() 函数确定指定代码点是否是字母字符。对于通用类别“L”(字母)返回 true。

public static IntlChar::isalpha(int|string $codepoint): ?bool

Example

请看以下示例:

<?php
   var_dump(IntlChar::isalpha("A"));
   var_dump(IntlChar::isalpha("1"));
?>

它将生成以下 output

bool(true)
bool(false)

Intl 类定义了类似的静态方法,例如 isdigit()、isalnum()、isblank() 等等。

IntlChar::islower

islower() 函数确定指定代码点是否具有通用类别“Ll”(小写字母)。

public static IntlChar::islower(int|string $codepoint): ?bool

Example

请看以下示例:

<?php
   var_dump(IntlChar::islower("A"));
   var_dump(IntlChar::islower("a"));
?>

它将生成以下 output

bool(false)
bool(true)

同样,还有如下函数:isupper()、istitle()、iswhitespace() 等等。

IntlChar::toupper

给定字符被映射到其大写等效项。

public static IntlChar::toupper(int|string $codepoint): int|string|null

如果字符没有大写等效项,则返回字符本身。

Example

请看以下示例:

<?php
   var_dump(IntlChar::toupper("A"));
   var_dump(IntlChar::toupper("a"));
?>

它将生成以下 output

string(1) "A"
string(1) "A"