📅  最后修改于: 2023-12-03 15:06:12.785000             🧑  作者: Mango
ord()
函数是 PHP 中用于获取字符的 ASCII 值的函数。 它将一个字符作为参数,并返回对应的 ASCII 值。
ord ( string $string ) : int
string
:必需。要获取 ASCII 值的字符。该函数返回 string
字符的 ASCII 值。
ord()
虽然 ord()
函数在处理 ASCII 字符中非常有用,但在处理非 ASCII 字符时, 它可能会产生一些令人惊讶的行为,因此不建议在生产环境中使用。
ord()
函数假设字符串中只包含 ASCII 字符,当使用 ord()
函数处理非 ASCII 字符时, 它会将字符串中的字符转换为一些神秘的数字,这些数字在某些情况下甚至并不是唯一的。 因此,如果您的代码需要处理非 ASCII 字符,那么您应该使用 mb_ord()
函数或 IntlChar::ord()
函数,这些函数都支持多字节字符集。
下面的示例演示了使用 ord()
函数处理非 ASCII 字符的行为。
$chinese = '中文';
echo ord($chinese[0]); // 输出:228
echo ord($chinese[1]); // 输出:184
echo ord($chinese[2]); // 输出:173
上面的示例中,为了方便演示,我们假设了字符串 $chinese
使用的字符集是 UTF-8。 事实上,无论使用哪种字符集,都不应该使用 ord()
函数来获取非 ASCII 字符的值。
如果您需要处理字符串中的字符,您应该使用合适的字符串处理函数,例如 mb_*
系列函数或 IntlChar
类。
mb_ord()
函数mb_ord()
函数可以返回多字节字符的 Unicode 值。
$chinese = '中文';
echo mb_ord($chinese[0], 'UTF-8'); // 输出:20013
echo mb_ord($chinese[1], 'UTF-8'); // 输出:25991
echo mb_ord($chinese[2], 'UTF-8'); // 输出:0
IntlChar::ord()
函数IntlChar::ord()
函数可以返回 Unicode 字符的值。
$chinese = '中文';
echo IntlChar::ord($chinese[0]); // 输出:20013
echo IntlChar::ord($chinese[1]); // 输出:25991
echo IntlChar::ord($chinese[2]); // 输出:0
在 PHP 中,ord()
函数可以方便地获取 ASCII 字符的值,但不建议在生产环境中使用 ord()
函数来处理非 ASCII 字符。 如果您需要处理字符串中的非 ASCII 字符,您应该使用 mb_*
系列函数或 IntlChar
类。