PHP – IntlChar



在 PHP7 中,引入了一個新的 IntlChar 類。它提供了一系列實用方法,可用於訪問有關 Unicode 字元的資訊。Intl 類中有很多靜態方法和常量。它們與底層 ICU(Unicode 國際元件)庫使用的名稱和行為非常接近。

注意 您需要在系統中的 PHP 安裝中啟用 Intl 擴充套件。要啟用,請開啟 php.ini 檔案並取消註釋(刪除行首的分號)

extension=intl

下面用示例解釋 Intl 類中的一些靜態函式:

IntlChar::charAge

此函式獲取程式碼點的“年齡”。

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

“年齡”是指程式碼點首次被指定(作為非字元或用於專用用途)或分配字元的 Unicode 版本。

示例

檢視以下示例:

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

它將產生以下輸出

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

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)

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"

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)

Intl 類定義了類似的靜態方法,例如 isdigit()、isalnum()、isblank() 等。

IntlChar::islower

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)

類似地,還有諸如 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"
廣告