PHP7 引入了一个新的 IntlChar 类。它提供了对许多实用程序方法的访问,这些方法可用于访问有关 Unicode 字符的信息。Intl 类中有许多静态方法和常量。它们严格遵循底层 ICU (International Components for Unicode) 库使用的名称和行为。
请注意,您需要在系统的 PHP 安装中启用 Intl 扩展。要启用,请打开 php.ini 文件并取消注释(从行中删除前导分号)
extension=intl
Intl 类中的一些静态函数通过以下示例进行解释 -
IntlChar::charAge
此函数获取码位的 “age”
public static IntlChar::charAge(int|string $codepoint): ?array
“age” 是首次指定码位(作为非字符或供私人使用)或分配字符时的 Unicode 版本。
例子
请看下面的例子 -
<?php
var_dump(IntlChar::charage("\u{2603}"));
?>
它将产生以下输出 -
array(4) {
[0]=>
int(1)
[1]=>
int(1)
[2]=>
int(0)
[3]=>
int(0)
}
[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
用于查找的名称的 type 参数集。可以是以下任何常量 -
- IntlChar::UNICODE_CHAR_NAME (默认)
- IntlChar::UNICODE_10_CHAR_NAME
- IntlChar::EXTENDED_CHAR_NAME
- IntlChar::CHAR_NAME_ALIAS
- IntlChar::CHAR_NAME_CHOICE_COUNT
例子
请看下面的例子 -
<?php
var_dump(IntlChar::charFromName("LATIN CAPITAL LETTER A"));
var_dump(IntlChar::charFromName("SNOWMAN"));
?>
它将产生以下输出 -
int(65)
int(9731)
int(9731)
IntlChar::charName
charName() 函数检索 Unicode 字符的名称
public static IntlChar::charName(int|string $codepoint,
int $type = IntlChar::UNICODE_CHAR_NAME): ?string
例子
请看下面的例子 -
<?php
var_dump(IntlChar::charName(".", IntlChar::UNICODE_CHAR_NAME));
var_dump(IntlChar::charName("\u{2603}"));
?>
它将产生以下输出 -
string(9) "FULL STOP"
string(7) "SNOWMAN"
string(7) "SNOWMAN"
IntlChar::isalpha
isalpha() 函数确定指定的码位是否为字母字符。对于一般类别 “L” (字母) ,为 true。
public static IntlChar::isalpha(int|string $codepoint): ?bool
例子
请看下面的例子 -
<?php
var_dump(IntlChar::isalpha("A"));
var_dump(IntlChar::isalpha("1"));
?>
它将产生以下输出 -
bool(true)
bool(false)
bool(false)
Intl 类定义了类似的静态方法,例如 isdigit()、isalnum()、isblank() 等。
IntlChar::isslow
islower() 函数确定指定的码位是否具有一般类别 “Ll” (小写字母)。
public static IntlChar::islower(int|string $codepoint): ?bool
例子
请看下面的例子 -
<?php
var_dump(IntlChar::islower("A"));
var_dump(IntlChar::islower("a"));
?>
它将产生以下输出 -
bool(false)
bool(true)
bool(true)
同样,还有 isupper()、istitle()、iswhitespace() 等函数。
IntlChar::toupper
给定的字符将映射到其大写等效字符。
public static IntlChar::toupper(int|string $codepoint): int|string|null
如果字符没有大写等效项,则返回字符本身。
例子
请看下面的例子 -
<?php
var_dump(IntlChar::toupper("A"));
var_dump(IntlChar::toupper("a"));
?>
它将产生以下输出 -
string(1) "A"
string(1) "A"
string(1) "A"