En PHP, los string se implementan como un array de bytes y con un número entero que indica la longitud del búfer. No posee ninguna información sobre cómo traducir esos bytes a caracteres, relegando esa tarea al programador. No existe ninguna limitación sobre los valores que pueden componer un string… Este comportamiento del tipo string justifica que no exista un tipo de dato «byte» en PHP – los string se encargan de esto. Las funciones que no devuelven datos de texto – por ejemplo, cualquier dato leído a partir de un socket de red – devolverán valores de tipo string. [1]

Como se mencionó antes, un string puede contener 256 caracteres, por lo que no soporta de forma nativa caracteres Unicode, pero es capaz de alcanzar hasta 2 GB de tamaño (2147483647 bytes máximo).

Formas de Presentación

Las formas de presentar un string son:

Entrecomillado simple

Sirve para colocar cadenas simples, texto sin formato. Puede ser más eficiente debido a que no se realizar un análisis de la cadena. Son pocas las secuencias de escapa que pueden utilizarse con comillas simples: ', para identificar dentro de la cadena a la comilla simple, y la doble barra invertidad \, para identificar una barra invertida.

Entrecomillado doble

Con este tipo es posible utilizar todas las secuencias de escape. También sirve para el análisis de variables.

HereDoc

«Una tercera forma de delimitar un string es mediante la sintaxis heredoc: <<<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 solo caracteres alfanuméricos y guiones bajos, y debe empezar con un carácter alfabético o un guión bajo».

<?php
 
$nombre = 'Jose';
 
$salida = <<<EOD
Mi nombre es "$nombre".
Esto debería mostrar una 'A' mayúscula: \x41
 
EOD;
 
echo $salida;

NowDoc

Nowdoc es a los string con comillas simples lo mismo que Heredoc lo es a los string con comillas dobles. Un nowdoc se especifica de forma análoga a un heredoc, pero no se realiza ningún 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.

<?php
 
$nombre = 'Jose';
 
$salida = <<<'EOD'
Mi nombre es "$nombre".
Esto debería mostrar una 'A' mayúscula: \x41
 
EOD;
 
echo $salida;

Algunas Funciones Útiles

A continuación se muestran algunas funciones que pueden resultar útiles a la hora de crear scripts o aplicaciones basadas en PHP.

https://gist.github.com/senquevila/078499a8e6ec44057449759851d97589

Referencias

[1] http://php.net/manual/es/language.types.string.php#language.types.string.details