PHP: indexação corda

votos
18

Qual é a diferença entre US $ str [n] e $ str {n}, dado que $ str é uma string.

Notei que ambos parecem trabalhar o mesmo, exceto que {} não ocorre em qualquer documentação que eu encontrei.

Publicado 19/05/2009 em 22:58
fonte usuário
Em outras línguas...                            


2 respostas

votos
30

Eles são os mesmos. No entanto, eles estão se livrando da {}sintaxe, então você deve ir com [].

De acordo com o manual :

Caracteres nas cordas podem ser acedidos e modificado especificando o deslocamento baseado em zero do caracter desejado depois da cadeia utilizando os suportes de matriz de quadrados, como em $str[42]. Pense em uma string como um array de caracteres para esta finalidade. As funções substr()e substr_replace()pode ser usado quando você deseja extrair ou substituir mais de 1 personagem.

Nota: A partir do PHP 7.1.0, as compensações de cordas negativas também são suportados. Estes especificar o deslocamento do final da string. Anteriormente, deslocamentos negativos emitidos E_NOTICEpara leitura (produzindo uma cadeia vazia) e E_WARNINGpara escrever (deixando a corda intocada).

Nota: Cordas pode também ser acessada usando colchetes, como $str{42}, para o mesmo fim.

Respondeu 19/05/2009 em 23:00
fonte usuário

votos
10

Tenha cuidado, $str[n]e $str{n}dar Byte n-th de String, não n-th personagem String. Para a codificação de vários bytes (UTF-8, etc.) um carácter não precisa de ser um byte.

$str{0} - primeiro Byte de corda

mb_substr($str, 0, 1) - primeiro caractere de string (incluindo conjuntos de caracteres de vários bytes)

http://php.net/mb_substr

Respondeu 28/01/2013 em 17:28
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more