Jau*_*ika 34 php arrays braces
我只是遇到了一个非常奇怪的PHP代码:
$oink{'pig'} = 1;
var_dump($oink);
$oink{'pig'} = '123123';
echo $oink{'pig'}; /* => 123123 */
echo $oink['pig']; /* => 123123 */
Run Code Online (Sandbox Code Playgroud)
它就像一个数组,但在手册中没有提到.这是什么?
Pac*_*ier 32
这是该手册中提到.{}
只是[]
§的替代语法:
方括号和花括号可以互换使用以访问数组元素(例如,
$array[42]
并且$array{42}
在上面的示例中都将执行相同的操作).
字符串§:
通过使用方形数组括号指定字符串后所需字符的从零开始的偏移量,可以访问和修改字符串中的字符,如
$str[42]
.将字符串视为用于此目的的字符数组.[...]注意:为了相同的目的
$str{42}
,也可以使用大括号访问字符串,如同.
根据文档上的评论,它只是另一种表示法,可能设计为类似于 Perl 语法: http: //www.php.net/manual/de/language.types.array.php#99015
更新:当这个答案最初发布时,PHP 手册没有关于这个符号的任何官方信息。然而,到 2014 年,上面引用的评论已被删除,并且正如Pacerier 的回答所述,该符号已在手册中正式提及。
手册上有提到,但很晦涩:
http://www.php.net/manual/en/language.types.string.php#language.types.string.substr
简而言之,花括号仅访问单个字符(尝试添加完整字符串,您将看到它仅返回第一个字符)。它也已被弃用,所以我会避免使用它。