Cadenas

Las cadenas de caracteres se pueden especificar usando uno de dos tipos de delimitadores .

Si la cadena está encerrada entre dobles comillas ( ") , las variables que estén dentro de la cadena serán expandidas (sujetas a ciertas limitaciones de interpretación ) . Como en C y en Perl , el carácter de barra invertida ( "\" ) se puede usar para especificar caracteres especiales :

Tabla 7-1 . Caracteres protegidos

secuencia significado
Nueva línea
Retorno de carro
Tabulación horizontal
Barra invertida
Signo del dólar
Comillas dobles
la secuencia de caracteres que coincida con la expresión regular es un carácter en notación octal
la secuencia de caracteres que coincida con la expresión regular es un carácter en notación hexadecimal


Se puede proteger cualquier otro carácter , pero se producirá una advertencia en el nivel de depuración más alto .

La segunda forma de delimitar una cadena de caracteres usa el carácter de comilla simple ( "'" ) . Cuando una cadena va encerrada entre comillas simples , los únicos caracteres de escape que serán comprendidos son " \\ " y "\' " . Esto es por convenio , así que se pueden tener comillas simples y barras invertidas en una cadena entre comillas simples . Las variables no se expandirán dentro de una cadena entre comillas simples .

Otra forma de delimitar cadenas es usando la sintaxis de documento incrustado ( " " ) . Se debe proporcionar un identificador después de , después la cadena , y después el mismo identificador para cerrar el entrecomillado .

Ejemplo 7-1 . He aquí un ejemplo de entrecomillado de cadenas con sintaxis de documento incrustado

 
$str

 
=

 
EOD

 
Ejemplo

 
de

 
cadena

 
Expandiendo

 
múltiples

 
líneas

 
usando

 
sintaxis

 
de

 
documento

 
incrustado

 
.




 
EOD

 
;





Nota : La sintaxis de documento incristado fue añadida en PHP 4 .

Las cadenas se pueden concatenar usando el operador ' . ' (punto ) . Nótese que el operador ' + ' (suma ) no sirve para esto . Por favor mire Operadores de cadena para más información .

Se puede acceder a los caracteres dentro de una cadena tratándola como un array de caracteres indexado numéricamente , usando una sintaxis similar a la de C . Vea un ejemplo más abajo .

Ejemplo 7-2 . Algumos ejemplos de cadenas

 
?php

 
/

 
*

 
Asignando

 
una

 
cadena

 
.

 
*

 
/

 
$str

 
=

 
"

 
Esto

 
es

 
una

 
cadena"

 
;

 
/

 
*

 
Añadiendo

 
a

 
la

 
cadena

 
.

 
*

 
/

 
$str

 
=

 
$str

 
.

 
"

 
con

 
algo

 
más

 
de

 
texto"

 
;

 
/

 
*

 
Otra

 
forma

 
de

 
añadir

 
,

 
incluye

 
un

 
carácter

 
de

 
nueva

 
línea

 
protegido

 
.

 
*

 
/

 
$str

 
.=

 
"

 
Y

 
un

 
carácter

 
de

 
nueva

 
línea

 
al

 
final.\n"

 
;

 
/

 
*

 
Esta

 
cadena

 
terminará

 
siendo

 
'

 
p

 
Número

 
:




 
9

 
/

 
p

 
'

 
*

 
/

 
$num

 
=

 
9

 
;

 
$str

 
=

 
"

 
p

 
Número

 
:

 
$num

 
/

 
p

 
"

 
;

 
/

 
*

 
Esta

 
será

 
'

 
p

 
Número

 
:

 
$num

 
/

 
p

 
'

 
*

 
/

 
$num

 
=

 
9

 
;

 
$str

 
=

 
'

 
p

 
Número

 
:

 
$num

 
/

 
p

 
'

 
;

 
/

 
*

 
Obtener

 
el

 
primer

 
carácter

 
de

 
una

 
cadena

 
*

 
/

 
$str

 
=

 
'Esto

 
es

 
una

 
prueba

 
.'

 
;

 
$first

 
=

 
$str[0]

 
;

 
/

 
*

 
Obtener

 
el

 
último

 
carácter

 
de

 
una

 
cadena

 
.

 
*

 
/

 
$str

 
=

 
'Esto

 
es

 
aún

 
una

 
prueba

 
.'

 
;

 
$last

 
=

 
$str[strlen($str)-1]

 
;

 
?





Conversión de cadenas

Cuando una cadena se evalúa como un valor numérico , el valor resultante y el tipo se determinan como sigue .

La cadena se evaluará como un doble si contiene cualquiera de los caracteres ' .' , 'e' , o 'E ' . En caso contrario , se evaluará como un entero .

El valor viene dado por la porción inicial de la cadena . Si la cadena comienza con datos de valor numérico , este será el valor usado . En caso contrario , el valor será 0 ( cero ) . Los datos numéricos válidos son un signo opcional , seguido por uno o más dígitos ( que opcionalmente contengan un punto decimal ) , seguidos por un exponente opcional . El exponente es una ' e ' o una 'E ' seguidos por uno o más dígitos .

Cuando la primera expresión es una cadena , el tipo de la variable dependerá de la segunda expresión .

 
$foo

 
=

 
1

 
+

 
"

 
10.5"

 
;

 
/

 
/

 
$foo

 
es

 
doble

 
(11.5

 
)

 
$foo

 
=

 
1

 
+

 
"-1.3e3"

 
;

 
/

 
/

 
$foo

 
es

 
doble

 
(-1299

 
)

 
$foo

 
=

 
1

 
+

 
"bob-1.3e3"

 
;

 
/

 
/

 
$foo

 
es

 
entero

 
(1

 
)

 
$foo

 
=

 
1

 
+

 
"bob3"

 
;

 
/

 
/

 
$foo

 
es

 
entero

 
(1

 
)

 
$foo

 
=

 
1

 
+

 
"10

 
Cerditos"

 
;

 
/

 
/

 
$foo

 
es

 
entero

 
(11

 
)

 
$foo

 
=

 
1

 
+

 
"10

 
Cerditos"

 
;

 
/

 
/

 
$foo

 
es

 
entero

 
(11

 
)

 
$foo

 
=

 
"10.0

 
cerdos

 
"

 
+

 
1

 
;

 
/

 
/

 
$foo

 
es

 
entero

 
(11

 
)

 
$foo

 
=

 
"10.0

 
cerdos

 
"

 
+

 
1.0

 
;

 
/

 
/

 
$foo

 
es

 
double

 
(11

 
)



Para más información sobre esta conversión , mire en la página del manual de Unix strtod( 3 ) .

Si quisiera probar cualquiera de los ejemplos de esta sección , puede cortar y pegar los ejemplos e insertar la siguiente línea para ver por mismo lo que va ocurriendo :

 
echo

 
"

 
\$foo==$foo

 
;

 
el

 
tipo

 
es

 
"

 
.

 
gettype

 
(

 
$foo

 
)

 
.

 
"

 
br

 
\n"

 
;