假设代码为$test = 'text';
。echo $test[0]
和echo $test{0}
有什么区别?结果是一样的。
是一个很好的做法来对待一个变量,其中包含一个字符串像一个数组的字符?
好的,我将把我的评论汇总为一个答案:
引用手册
string也可以使用大括号访问,如$str{42}同样的目的。但是,这种语法在PHP 7中已弃用。
另外,尽管没有文档记录,{}访问器也可以用于数组,这使得$foo{$bar}和$foo[$bar]完全相等。它只是为了方便Perl程序员而使用的旧语法。
关于你的第二个问题,如果把字符串当作字符数组来对待是一个好习惯:是的,如果它对你的任务有用,那么就这样做。在像C这样的低级语言中,字符串是字符的数组,所以这样对待它们是很自然的。
但是请记住PHP对unicode的支持很差。因此,如果您的字符串是多字节编码(即UTF-8),这可能不会像预期的那样工作。在这种情况下最好使用多字节函数
https://www.php.net/manual/en/language.types.string.php
使用{}语法访问字符串字面量中的字符已在PHP 7.4中弃用。这在PHP 8.0中已被删除。
所以,总是使用方括号$str[0]
你可以写"Hello, I am a character of a string $string{0}"
但是你不能写"Hello, I am a character of a string $string[0]"
必须使用字符串连接符号,如
"你好,我是字符串中的一个字符"$ string [0];