2012-03-23 10 views
5

Estaba revisando una base de código y encontré una línea sobre la que tenía una pregunta. Es algo que no había visto antes y me preguntaba si alguien podría explicarlo por mí. Aquí está el código:

$variableName = $array[1]; 
$variableName{0} = strtolower($variableName{0}); 
$this->property = $variableName; 

¿Para qué se utilizan las llaves? He usado llaves para definir variables como nombres de variables antes, pero ¿es esto lo mismo? Parece que no puedo encontrar ningún recurso en línea que lo explique, pero no estoy seguro de si estoy buscando lo correcto.

Respuesta

4

el acceso al único byte con ese índice {0} => primer carácter (en la cadena no UTF-8)

simplemente podría probarlo con:

$var='hello'; 
echo $var{0}; 
+0

Interesante. Un buen atajo en lugar de substr() para un solo carácter, siempre que ya sepas la longitud de la variable con la que estás probando. – opes

+1

Lo evitaría de todos modos. Porque si usas una cadena multibyte obtendrás una cadena mal formada. Mira mb_strlen si necesitas acceder a caracteres únicos (usando UTF-8) – dynamic

+0

Ah, buena información. Tu aprendes algo nuevo cada dia. ¡Gracias! – opes

2

puede ser prender el primer carácter de la cadena de minúscula. Es un operador de acceso directo de la cadena, que funciona igual que esta:

<?php 
$variableName = strtolower(substr($variableName, 0, 1)) . substr($variableName, 1) 
+0

Entonces esencialmente, solo lcfirst() ¿entonces? Siempre que la variable sea una cadena. – opes

+1

Lol. Sí, nunca he tenido un uso para esa función, así que no sabía que había una dedicada. Pero sí, ese es el uno. – landons

1

Las llaves {} de trabajo lo mismo que corchetes [], de matriz o de indexación cadena. Supongo que es prestado de Perl, en el que los corchetes se utilizan para matrices y llaves se utilizan para hash. Pero en PHP las matrices y los hashes son lo mismo.

Cuestiones relacionadas