带有大括号的类似数组的语句 - 目的是什么?

Nig*_*awk 11 php

我在网上找到了这段代码,我想知道它的作用:

$k[$i] = ord($key{$i}) & 0x1F;
Run Code Online (Sandbox Code Playgroud)

我知道ord()返回一个ASCII值,但我不清楚大括号的作用$key{$i}以及它的作用& 0x1F.

mar*_*rio 8

那不是数组语法.它仅用于从字符串访问单个字符.索引必须是数字.

 $str{1} == $str[1]
Run Code Online (Sandbox Code Playgroud)

它在信息框中简要提到:http: //www.php.net/manual/en/language.types.string.php#language.types.string.substr

此外,它已正式宣布弃用.它已在手册中打开和关闭,但如果不常见,语法仍然非常有效.


& 0x1F是一个有点明智的AND.在这种情况下,它将十进制值限制为0到31.