En la presente entrada de esta bitácora de la serie de entradas sobre el lenguaje de guiones PHP se tratará otro de los elementos de programación más utilizados, las cadenas ("strings", en inglés).
Un elemento típico en prácticamente todos los lenguajes de programación existentes, la cadena es una serie de caracteres donde cada caracter es lo mismo que un byte, lo que significa que PHP sólo admite un conjunto de 256 caracteres.
Un literal de tipo cadena se puede especificar de cuatro formas diferentes: Entrecomillado simple, entrecomillado doble, sintaxis heredoc, y sintaxis nowdoc (desde PHP 5.3.0).
Para especificar una comilla simple literal, se debe escapar con una barra invertida ("\"). Para especificar una barra invertida literal, se duplica ("\\"). Todas las demás instancias de barras invertidas se tratarán como una barra invertida literal, lo que significa que otras secuencias de escape que se podrían utilizar, tales como \r o \n, serán mostradas literalmente tal y como se especifican, en lugar de tener cualquier otro significado especial.
Un elemento típico en prácticamente todos los lenguajes de programación existentes, la cadena es una serie de caracteres donde cada caracter es lo mismo que un byte, lo que significa que PHP sólo admite un conjunto de 256 caracteres.
Un literal de tipo cadena se puede especificar de cuatro formas diferentes: Entrecomillado simple, entrecomillado doble, sintaxis heredoc, y sintaxis nowdoc (desde PHP 5.3.0).
ENTRECOMILLADO SIMPLE
El modo más simple de especificar una cadena consiste en delimitarla con comillas simples (caracter "'").Para especificar una comilla simple literal, se debe escapar con una barra invertida ("\"). Para especificar una barra invertida literal, se duplica ("\\"). Todas las demás instancias de barras invertidas se tratarán como una barra invertida literal, lo que significa que otras secuencias de escape que se podrían utilizar, tales como \r o \n, serán mostradas literalmente tal y como se especifican, en lugar de tener cualquier otro significado especial.
ENTRECOMILLADO DOBLE
Si una cadena está delimitada por comillas dobles (“), PHP interpretará las siguientes secuencias de escape como caracteres especiales:- \n: Nueva línea.
- \r: Retorno de carro.
- \t: Tabulación horizontal.
- \v: Tabulador vertical.
- \e: Escape.
- \f: Avance de página.
- \\: Barra invertida
- \$: Signo del dólar.
- \”: Comillas dobles.
- \[0-7]{1,3}: La secuencia de caracteres que coincida con la expresión regular es un caracter en notación octal que silenciosamente desborda para encajar un byte (por ejemplo, “\400” == “\000”)
- \x[0-9A-Fa-f]{1,2}: La secuencia de caracteres que coincida con la expresión regular es un caracter en notación hexadecimal.
- u{[0-9A-Fa-f]+}: (Añadido en PHP 7.0.0). La secuencia de caracteres que coincida con la expresión regular es un punto de código de Unicode, la cual será impresa a la cadena como dicha representación UTF-8 del punto de código.
SINTAXIS HEREDOC
Una tercera forma de delimitar una cadena es mediante la sintaxis heredoc: <<<. Después de este operador, se deberá proporcionar un identificador y, justo después, una nueva línea.
A continuación va la propia cadena, y para cerrar la notación se pone el mismo identificador.
A continuación va la propia cadena, y para cerrar la notación se pone el mismo identificador.
El identificador de cierre debe empezar en la primera columna de la nueva línea. Asimismo, el identificador debe seguir las mismas reglas de nomenclatura de las etiquetas en PHP: debe contener sólamente caracteres alfanuméricos y guiones bajos, y debe empezar con un caracter alfabético o un guión bajo.
El texto heredoc se comporta como una cadena entre comillas dobles, pero sin tener comillas dobles, lo que significa que no es necesario escapar las comillas en un heredoc, aunque se pueden seguir empleando los códigos de escape indicados arriba. A pesar de que las variables son expandidas, se debe tener el mismo cuidado al expresar variables complejas en un heredoc que en una cadena estándar.
El texto heredoc se comporta como una cadena entre comillas dobles, pero sin tener comillas dobles, lo que significa que no es necesario escapar las comillas en un heredoc, aunque se pueden seguir empleando los códigos de escape indicados arriba. A pesar de que las variables son expandidas, se debe tener el mismo cuidado al expresar variables complejas en un heredoc que en una cadena estándar.
SINTAXIS NOWDOC
Nowdoc es a las cadenas con comillas simples lo mismo que heredoc lo es a las cadenas con comillas dobles. Un nowdoc se especifica de forma análoga a un heredoc, pero no se realiza ninguna análisis dentro del nowdoc. La construcción es ideal para embeber código de PHP o grandes fragmentos de texto sin necesidad de escaparlos.
Un nowdoc se identifica con la misma secuencia empleada para heredoc, <<<, pero el identificador que le sigue está delimitado con comillas simples. Todas las reglas para los identificadores de heredoc también son aplicables a los identificadores de nowdoc, especialmente aquellas que se refieren al empleo del identificador de cierre.
Un nowdoc se identifica con la misma secuencia empleada para heredoc, <<<, pero el identificador que le sigue está delimitado con comillas simples. Todas las reglas para los identificadores de heredoc también son aplicables a los identificadores de nowdoc, especialmente aquellas que se refieren al empleo del identificador de cierre.
OPERADORES
Los operadores básicos de las cadenas son:
Operador | Sintaxis | Descripción |
Concatenación | . | Concatena dos o más cadenas de caracteres. |
Asignación | = | Asigna un valor a la cadena. |
Concatenación y asignación | .= | Asigna una cadena a otra cadena. |
No obstante, las cadenas también operan con operadores de comparación:
Operador | Sintaxis | Descripción |
Igualdad | $a == $"b" |
Compara si el valor de un operando y una cadena es el mismo. |
Desigualdad | $a != $"b" | Cierto si el valor de "$a" no es igual al de "$"b"". |
Exactitud | $a === $b | Compara si el valor es el mismo y, además, el tipo coincide (a partir de PHP 4). |
No exactitud | $a !== $b | Cierto si "$a" no es igual a "$"b"", o si no tienen el mismo tipo. |
FUNCIONES
Las cadenas de caracteres pueden utilizarse en las siguientes funciones (entre otras):
Además, cualquier cadena puede verse como una matriz de caracteres, con lo que es posible acceder a cada uno de sus elementos mediante la sintaxis de las matrices.
Pueden verse ejemplos de cadenas de caracteres en el siguiente enlace.
Aguardo que la siguiente entrada haya sido de interés del lector. Si es así, espero que este la comente y/o la comparta, por favor.
strlen($cadena) | Devuelve el número de caracteres de una cadena. |
substr($cadena, $inicio[, $largo]) | Devuelve una subcadena de una cadena desde la posición "$inicio" y con la longitud "$largo"si está presente (si no, hasta el final). |
strpos($cadena, $subcadena[, $largo]) | Devuelve la posición de "$subcadena" dentro de "$cadena" (a partir de "$inicio" si está presente; "FALSE" si no se encuentra). |
strtoupper($cadena) | Devuelve la cadena en mayúsculas. |
strtolower($cadena) | Devuelve la cadena en minúsculas. |
trim($cadena) | Devuelve la misma cadena sin los espacios del principio y del final. |
str_replace($txtBuscar, $txtReemplazar, $cadena[, $nº]) | Cambia las ocurrencias de "$txtBuscar" en "$cadena" por "$txtReemplazar" (si se indica "$nº" sólo lo hace ese número de veces). |
Además, cualquier cadena puede verse como una matriz de caracteres, con lo que es posible acceder a cada uno de sus elementos mediante la sintaxis de las matrices.
Pueden verse ejemplos de cadenas de caracteres en el siguiente enlace.
Aguardo que la siguiente entrada haya sido de interés del lector. Si es así, espero que este la comente y/o la comparta, por favor.
No hay comentarios:
Publicar un comentario
Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.