Comillas dobles en php. ¿Cuál es la diferencia entre cadenas entre comillas simples y dobles en PHP? comillas de escape de php

Este breve artículo muestra cómo y dónde utilizar cotizaciones en PHP.

Comillas simples (apóstrofes) en PHP

PHP no procesa de ninguna manera las cadenas entre comillas simples. Es decir, las comillas simples representan el texto encerrado entre ellas tal cual.

// Corregir eco "¿Cómo va la vida?"; echo "¿Cómo va la vida? $nombre"; echo "¿Cómo va la vida?".$nombre; // eco incorrecto "¿Cómo estás? $nombre";

Caracteres especiales entre comillas simples y dobles.

Para garantizar que, por ejemplo, el carácter de tabulación (\t) se interprete como un carácter de tabulación en lugar de una barra diagonal y la letra t, debe encerrar la línea de texto que contiene el carácter de tabulación entre comillas dobles. Sólo puedes utilizar \' y \\ entre comillas simples. Todas las demás secuencias de escape (\n, \r, \$, etc.) no están permitidas entre comillas simples.

// Eco incorrecto "¿Cómo estás?\n"; // Corregir echo "¿Cómo estás?\n";

Para escapar de las comillas dobles dentro de una cadena, coloque las comillas antes de la barra invertida \" .

// Eco incorrecto "

¿Qué pasa?

"; // Corregir eco "

¿Qué pasa?

"; eco "

¿Qué pasa?

";

Comillas dobles en PHP

El texto entre comillas dobles se trata de forma muy diferente. Por ejemplo, las variables entre comillas dobles se reemplazan con sus valores. Esto hace que sea conveniente componer consultas SQL usando comillas dobles.

$consulta = "INSERTAR EN la tabla (publicación,autor,texto,fecha) VALORES ("$id","$autor","$texto","$fecha"");

¿Qué tipo de comillas debo utilizar para dar formato a las cadenas: apóstrofes o comillas dobles clásicas?

Veamos la diferencia entre comillas dobles y simples en PHP y usemos ejemplos para saber cuándo usar cuál.

Variables y secuencias de escape para caracteres especiales, que aparecen en cadenas entre comillas simples no se procesan. El intérprete de PHP procesa las cadenas rodeadas de apóstrofes mucho más rápido que cadenas similares entre comillas dobles.

La razón aquí es simple: el intérprete PHP verifica adicionalmente las cadenas entre comillas dobles para detectar la presencia de variables y, si las encuentra, en lugar del nombre de la variable, se inserta su valor en la cadena. Pero el intérprete percibe una línea encerrada entre apóstrofes como texto normal y PHP no realiza ninguna transformación en estas líneas. Creo que está claro que procesar cadenas entre comillas simples será más rápido en cualquier caso.

Primero, describamos cómo definir una cadena y luego verifiquemos cuánto más rápido será el procesamiento de cadenas entre comillas simples.

La forma más sencilla de definir una cadena es encerrarla entre comillas simples ("). Para usar comillas simples dentro de una cadena entre comillas simples, deben ir precedidas de una barra invertida (\), es decir, con caracteres de escape. Si la barra invertida debe venir antes de una comilla simple o al final de la línea, debe duplicarla. Si intenta escapar de cualquier otro carácter, también se imprimirá la barra invertida.

A continuación se muestra un ejemplo del uso de comillas simples:
// Salida: cadena simple
echo "Cadena simple";
// Impresiones: Estoy aquí
echo "Estoy aquí";
// Salida: Esto no insertará: \n nueva línea
echo "Esto no insertará:\nnueva línea";
// Salidas: La variable $ejemplo tampoco será sustituida
echo "La variable $ejemplo tampoco será sustituida"; Si una cadena está entre comillas dobles ("), PHP reconoce más secuencias de escape para caracteres especiales y también sustituye el nombre de la variable en la cadena por su valor. Al igual que con las comillas simples, para usar comillas dobles dentro de una cadena encerrada entre comillas dobles, deben ir precedidas de una barra invertida (\).

A continuación se muestra un ejemplo del uso de comillas dobles:
// Salida: cadena simple
echo "Cadena simple";
// Salidas: Empresa "Snowdrop"
echo "Empresa \"Snowdrop\"";
// Salida: Esto conducirá a una nueva línea
echo "Esto pasará a una nueva línea \n";
// Salida: La variable será sustituida
$ejemplo = "será sustituido";
echo "Variable $ejemplo"; También debe recordar que la secuencia "\n" (nueva línea), "\r" (retorno de carro) es para texto sin formato, no HTML. Así que no verás cambios en el navegador (sólo en código fuente páginas).

Averigüemos cuánto más rápidas son las comillas simples que las comillas dobles. Para las mediciones, escribiremos un breve script de prueba e inmediatamente notaremos que si lo prueba usted mismo, los resultados, que dependen del hardware de su PC o servidor, serán diferentes.
// Devuelve la marca de tiempo al comienzo del ciclo
$inicio = microtiempo(verdadero);
// Crea un bucle para 1 millón de iteraciones
para ($i = 0; $i< 1000000; $i++) {
$text = "Aquí hay una cadena de caracteres";
}
//Calcular el tiempo invertido
$tiempo = (microtiempo(verdadero) - $inicio); Resultado: 0,09 segundos.

Si reemplazamos comillas simples por comillas dobles:
$text = "Aquí hay una cadena de caracteres"; El resultado será de 0,10 segundos.

Como puede ver, cuando se utilizan cadenas de texto, la diferencia en el tiempo de ejecución es muy pequeña, incluso se podría decir que no existe en absoluto. La diversión comienza cuando intentamos combinar una cadena y una variable.
$text = "Aquí está la cadena de caracteres $i"; o
$texto = $i."Aquí hay una cadena de caracteres"; Resultado aproximado: 0,27 segundos.

La diferencia es bastante notable. La concatenación y las comillas dobles afectan claramente el rendimiento cuando se agregan variables a la cadena.

Cuando el servidor procesa el código, verifica todo el contenido de las comillas dobles en busca de variables, constantes y más. Toma tiempo. Y el servidor procesa lo que hay entre comillas simples como texto ya preparado y no le importa lo que haya allí. La diferencia entre el rendimiento de las comillas simples y dobles es muy pequeña, pero si está desarrollando un proyecto muy cargado, ahorrar unos pocos milisegundos ya es una victoria.

Una cadena en PHP es un conjunto de caracteres de cualquier longitud. A diferencia de C, las cadenas también pueden contener caracteres nulos, lo que no afectará al programa de ninguna manera. En otras palabras, las cadenas se pueden utilizar para almacenar datos binarios. La longitud de la cadena está limitada únicamente por el tamaño de la RAM libre.

En PHP, un carácter es lo mismo que un byte, lo que significa que hay exactamente 256 caracteres diferentes posibles. Esto también significa que PHP no tiene soporte nativo para Unicode. Parte del soporte Unicode lo proporcionan las funciones utf8_encode() Y utf8_decode() .

La cadena se puede procesar fácilmente utilizando funciones estándar y también puede acceder directamente a cualquiera de sus caracteres.

Un ejemplo simple de una variable de cadena:

$a= "Es sólo texto almacenado en una variable de cadena";
eco $a ; //Resulta "Esto es sólo texto escrito en una variable de cadena"
?>

Ahora veamos en detalle la sintaxis del tipo de datos. cadena.

Sintaxis del tipo de cadena

Una cadena se puede definir de tres maneras diferentes.

La forma más sencilla de definir una cadena es encerrarla entre comillas simples (el símbolo " ).

Para utilizar una comilla simple dentro de una cadena, como en muchos otros idiomas, debe ir precedida por un carácter de barra invertida ( \ ), es decir, filtrarlo. Si la barra invertida debe ir antes de una comilla simple o al final de la línea, deberá duplicarla. Tenga en cuenta que si intenta escapar de cualquier otro carácter, ¡también se imprimirá la barra invertida! Por lo tanto, generalmente no es necesario escapar de la barra invertida.

A diferencia de las otras dos sintaxis, variables y secuencias de escape para caracteres especiales que aparecen en cadenas encerradas en, No están siendo procesados.

A continuación se muestra un ejemplo del uso de comillas simples:

eco "esta es una cadena simple";

Eco "También puedes insertar en líneas
carácter de nueva línea por lo tanto,
porque es normal"
;

// Salida: Arnold dijo una vez: "Volveré"
eco "Un día Arnold dijo: 'Volveré'".;

Eco "¿Borraste C:\\*.*?";

// Salidas: ¿Eliminaste C:\*.*?
echo "¿Borraste C:\*.*?" ;

// Salida: Esto no insertará: \n nueva línea
eco "Esto no insertará:\nnueva línea";

// Salidas: $expand y $cualquiera de las variables no se sustituyen
eco "$expandir y $cualquiera de las variables no se sustituyen";
?>

Si la cadena está entre comillas dobles ( " ), PHP reconoce más secuencias de escape para caracteres especiales:

Tabla de secuencia de control:

Subsecuencia Significado
\norte nueva línea (LF o 0x0A (10) en ASCII)
\r retorno de carro (CR o 0x0D (13) en ASCII)
\ t pestaña horizontal (HT o 0x09 (9) en ASCII)
\\ barra invertida
\$ signo de dólar
\" comillas dobles
\{1,3} una secuencia de caracteres correspondiente a una expresión regular, un carácter en el sistema numérico octal
\x(1,2) secuencia de caracteres correspondiente a una expresión regular, carácter en sistema numérico hexadecimal

Recordemos nuevamente que si deseas mnemonicizar cualquier otro carácter, ¡también se imprimirá la barra invertida!

Otra forma de definir cadenas es usar sintaxis heredoc ("<<< "). Después<<< необходимо указать идентификатор, затем идет строка, а потом этот же идентификатор, закрывающий вставку.

El identificador de cierre debe comenzar en la primera columna de la fila. Además, el identificador debe seguir las mismas reglas de nomenclatura que todas las demás etiquetas en PHP: contener solo caracteres alfanuméricos y un guión bajo, y debe comenzar con un guión bajo o que no sea un dígito.

¡Atención! Es muy importante tener en cuenta que la línea identificadora de cierre no contiene ningún otro carácter, excepto quizás un punto y coma ( ; ). Esto significa que el identificador y que no puede haber espacios ni tabulaciones antes o después del punto y coma. También es importante comprender que el primer carácter antes del identificador de cierre debe ser un carácter de nueva línea según lo define su sistema operativo. Por ejemplo, en Windows® esto es \r.

Si se viola esta regla y el identificador de cierre no está "limpio", se considera que falta el identificador de cierre y PHP continuará buscándolo. Si en este caso nunca se encuentra el identificador de cierre correcto, se producirá un error en el procesamiento con el número de línea al final del script.

Heredoc-text se comporta de la misma forma que una cadena entre comillas dobles, sin tenerlas. Esto significa que no necesita escapar de las comillas en heredoc, pero aún puede usar las secuencias de escape anteriores. Las variables se procesan, pero hay que tener tanto cuidado al utilizar variables complejas dentro de heredoc como al trabajar con cadenas.

Ejemplo de definición de una cadena heredoc:

$cadena =<<Línea de ejemplo,
cubriendo varias líneas,
usando la sintaxis heredoc.
EOD;

/* Ejemplo más complejo con variables. */
clase foo
{
var$foo;
var $barra;

Función foo()
{
$esto -> foo = "Foo";
$this -> barra = matriz("Bar1", "Bar2", "Bar3");
}
}

$foo = nuevo foo();
$nombre = "MiNombre" ;

Eco<<Mi nombre es "$nombre". Estoy escribiendo $foo-> foo.
Ahora estoy deduciendo
( $foo -> barra [ 1 ]) .
Esto debería generar una letra mayúscula "A":
\x41
EOT;
?>

No soy un experto en programación PHP, pero estoy un poco confundido por qué veo algún código en PHP con una cadena encerrada entre comillas simples y, a veces, dobles.

Solo sé que en lenguaje .NET o C, si está entre comillas simples, significa que es un carácter y no una cadena.

Solución

Lo que deberías saber

$a = "nombre"; $b = "mi $a"; == "mi nombre" $c = "mi $a"; != "mi nombre"

En PHP, las personas usan comillas simples para definir una cadena constante como "a", "mi nombre", "abc xyz", mientras que usan comillas dobles para definir una cadena que contiene un identificador como "a $b $c $d".

Y otra cosa es

Haga eco de "mi nombre";

más rápido que

Haga eco de "mi nombre";

Eco "mi" . $a;

más lento que

Echo "mi $a";

Esto es válido para otras cadenas utilizadas.

En PHP, el texto entre comillas simples se trata como un valor de cadena, mientras que el texto entre comillas dobles analizará las variables reemplazando y procesando su valor.

$prueba = "variable"; echo "Hola señor $test"; // el resultado sería: Hola Señor variable echo "Hola Señor $prueba"; // el resultado sería: Hola señor $test

Aquí, la comilla doble analiza el valor y la comilla simple se trata como un valor de cadena (sin analizar la variable $test).

Ambos tipos de caracteres anidados son cadenas. Es conveniente utilizar un tipo de cita para concluir otro tipo de cita. """ y """ La mayor diferencia entre los tipos de comillas es que las referencias de identificadores anidados se reemplazan entre comillas dobles en lugar de comillas simples.

Una cadena es un conjunto de caracteres. En PHP, un carácter es lo mismo que un byte, lo que significa que hay exactamente 256 caracteres diferentes posibles. Esto también significa que PHP no tiene soporte nativo para Unicode. Parte del soporte para Unicode lo proporcionan las funciones utf8_encode() y utf8_decode().

Nota: No hay problema si la cadena es muy grande. Prácticamente no existen restricciones sobre el tamaño de las cadenas impuestas por PHP, por lo que no hay absolutamente ninguna razón para preocuparse por su longitud.

Sintaxis

    Una cadena se puede definir de tres maneras diferentes.

Comillas simples

La forma más sencilla de definir una cadena es encerrarla entre comillas simples (el carácter ").

Para utilizar una comilla simple dentro de una cadena, como en muchos otros idiomas, debe estar precedida por una barra invertida (\), es decir, con formato de escape. Si la barra invertida debe ir antes de una comilla simple o al final de la línea, deberá duplicarla. Tenga en cuenta que si intenta escapar de cualquier otro carácter, ¡también se imprimirá la barra invertida! Por lo tanto, generalmente no es necesario escapar de la barra invertida.

Nota: En PHP 3, en este caso, se emitirá un mensaje de nivel E_NOTICE.

Nota: A diferencia de las otras dos sintaxis, las variables y secuencias de escape para caracteres especiales que aparecen en cadenas entre comillas simples no se procesan.

Echo "esta es una cadena simple"; echo "También puedes insertar un carácter de nueva línea en las cadenas de esta manera, como es normal"; // Salidas: Arnold dijo una vez: "Volveré" echo "Arnold dijo una vez: "Volveré""; // Salidas: ¿Eliminaste C:\*.*? echo "¿Borraste C:\\*.*?"; // Salidas: ¿Eliminaste C:\*.*? echo "¿Borraste C:\*.*?"; // Salidas: Esto no insertará: \n una nueva línea echo "Esto no insertará: \n una nueva línea"; // Salidas: $expand y $cualquiera de las variables no se sustituyen echo "$expand y $cualquiera de las variables no se sustituyen";

Doble comillas

Si la cadena está entre comillas dobles ("), PHP reconoce más secuencias de escape para caracteres especiales:

Tabla 11-1. Secuencias de escape

Repetimos, si quieres mnemonizar cualquier otro carácter, ¡la barra invertida también se imprimirá!

Pero la propiedad más importante de las cadenas entre comillas dobles es el manejo de variables. Ver más detalles: procesamiento de cadenas.

Heredoc

Otra forma de definir cadenas es utilizar la sintaxis heredoc ("

El identificador de cierre debe comenzar en la primera columna de la fila. Además, el identificador debe seguir las mismas reglas de nomenclatura que todas las demás etiquetas en PHP: contener solo caracteres alfanuméricos y un guión bajo, y debe comenzar con un guión bajo o que no sea un dígito.

Atención

Es muy importante tener en cuenta que la línea de cierre del identificador no contiene ningún otro carácter, excepto posiblemente un punto y coma (;). Esto significa que el identificador no debe tener sangría y que no puede haber espacios ni tabulaciones antes o después del punto y coma. También es importante comprender que el primer carácter antes del identificador de cierre debe ser un carácter de nueva línea según lo define su sistema operativo. Por ejemplo, en Macintosh es \r.

Si se viola esta regla y el identificador de cierre no está "limpio", se considera que falta el identificador de cierre y PHP continuará buscándolo. Si en este caso nunca se encuentra el identificador de cierre correcto, se producirá un error en el procesamiento con el número de línea al final del script.

El texto Heredoc se comporta de la misma manera que una cadena entre comillas dobles, sin tenerlas. Esto significa que no necesita escapar de las comillas en heredoc, pero aún puede usar las secuencias de escape anteriores. Las variables se procesan, pero hay que tener tanto cuidado al utilizar variables complejas dentro de heredoc como al trabajar con cadenas.

Ejemplo 11-2. Ejemplo de definición de cadena Heredoc

$cadena =<<foo = "Foo"; $this->bar = array("Barra1", "Barra2", "Barra3"); ) ) $foo = nuevo foo(); $nombre = "MiNombre"; eco<<foo. Ahora salgo ($foo->bar). Esto debería generar una letra mayúscula "A": \x41 EOT;

Nota: La compatibilidad con Heredoc se agregó en PHP 4.

Manejo de variables

Si una cadena se define entre comillas dobles o mediante heredoc, se procesan las variables que contiene.

Hay dos tipos de sintaxis: simple y compleja. La sintaxis simple es más fácil y conveniente. Le permite procesar una variable, un valor de matriz o una propiedad de objeto.

La sintaxis compleja se introdujo en PHP 4 y se puede reconocer por las llaves que rodean la expresión.

Sintaxis simple

Si el intérprete encuentra un signo de dólar ($), toma tantos caracteres como sea posible para formar un nombre de variable válido. Si desea especificar el final de un nombre, incluya el nombre de la variable entre llaves.

$cerveza = "Heineken"; echo "el sabor de $cerveza es excelente"; // funciona, """ es un carácter no válido para un nombre de variable echo "Bebió algunas $cervezas"; // no funciona, "s" es un nombre de variable válido echo "Bebió algunas $(cerveza)s"; // funciona echo "Bebió algunas ($cervezas)"; // obras

De la misma manera se puede procesar un elemento de matriz (matriz) o una propiedad de un objeto (objeto). En los índices de matriz, un corchete de cierre (]) marca el final de la definición del índice. Se aplican las mismas reglas para las propiedades de los objetos que para las variables simples, aunque no se pueden engañar como ocurre con las variables.

// Estos ejemplos tratan específicamente sobre el uso de matrices dentro de // cadenas. Fuera de las cadenas, siempre incluya las claves de cadena de su matriz // entre comillas y no las utilice fuera de las cadenas (paréntesis). // Mostremos todos los errores error_reporting(E_ALL); $frutas = array("fresa" => "rojo", "plátano" => "amarillo"); // Funciona, pero tenga en cuenta que funciona de manera diferente fuera de la cadena entre comillas echo "Un plátano es $frutas."; //Funciona echo "Un plátano es ($frutas["banana"])."; // Funciona, pero PHP, como se describe a continuación, primero busca // la constante banana. echo "Un plátano es ($frutas)."; // No funciona, usa llaves. Esto provocará un error de procesamiento. echo "Un plátano es $frutas["plátano"]."; // Funciona en eco "Un plátano es". $frutas["plátano"] . "."; // Works echo "Este cuadrado mide $cuadrado->ancho metros de ancho."; // No funciona. Consulte la sintaxis compleja para encontrar una solución. echo "Este cuadrado tiene $cuadrado->ancho00 centímetros de ancho.";

Para algo más complejo, debes utilizar una sintaxis compleja.

Sintaxis compleja (rizada)

Se llama complejo no porque sea difícil de entender, sino porque permite el uso de expresiones complejas.

De hecho, puedes incluir cualquier valor que esté en el espacio de nombres en una línea con esta sintaxis. Simplemente escribe la expresión de la misma manera que lo harías fuera de la línea y luego la encierras entre ( y ). Como no se puede escapar de "(", esta sintaxis solo se reconocerá cuando $ siga inmediatamente a (. (Utilice "(\$" o "\($" para escapar de "($"). Algunos ejemplos ilustrativos:

// Mostremos todos los errores error_reporting(E_ALL); $genial = "fantástico"; // No funciona, el resultado será: Esto es (fantástico) echo "Esto es ($genial)"; // Funciona, generará: Esto es fantástico echo "Esto es ($genial)"; echo "Esto es $(genial)"; // Funciona echo "Este cuadrado tiene ($cuadrado->ancho)00 centímetros de ancho."; // Funciona echo "Esto funciona: ($arr)"; // Esto no es válido por la misma razón que $foo no es válido fuera de la // línea. En otras palabras, esto seguirá funcionando, // pero debido a que PHP busca primero la constante foo, // arrojará un error E_NOTICE (constante no definida). echo "Esto está mal: ($arr)"; // Obras. Cuando utilice matrices multidimensionales, utilice siempre llaves dentro de // strings echo "Esto funciona: ($arr["foo"])"; // Obras. echo "Esto funciona: ". $arr["foo"]; echo "Incluso puedes escribir ($obj->valores->nombre)"; echo "Este es el valor de la variable llamada $nombre: ($($nombre))";

Acceder y cambiar un carácter en una cadena

Los caracteres en cadenas se pueden usar y modificar especificando su desplazamiento desde el principio de la cadena, comenzando en cero, entre llaves después de la cadena.

Nota: Para compatibilidad con versiones anteriores, aún tiene la opción de utilizar corchetes de matriz para los mismos fines. Sin embargo, a partir de PHP 4, esta sintaxis está en desuso.

Ejemplo 11-3. Algunas cadenas de ejemplo

// Obtiene el primer carácter de la cadena $str = "Esto es una prueba."; $primero = $cadena(0); // Obtiene el tercer carácter de la cadena $third = $str(2); // Obtiene el último carácter de la cadena $str = "Esto todavía es una prueba."; $último = $cadena(strlen($cadena)-1); // Cambia el último carácter de la línea $str = "Mira el mar"; $cadena(strlen($cadena)-1) = "Yo";

Funciones y operadores útiles

Las cadenas se pueden concatenar utilizando el operador "." (punto). Tenga en cuenta que el operador de suma "+" no funciona aquí. Para obtener más información, consulte Operadores de cadena.

Hay muchas funciones útiles para modificar cadenas.

Las funciones principales se describen en la sección de funciones de cadena, funciones de expresión regular para búsqueda avanzada y reemplazo (en dos partes: Perl y POSIX avanzado).

También hay funciones para cadenas de URL y funciones para cifrar/descifrar cadenas (mcrypt y mhash).

Finalmente, si aún no has encontrado lo que buscas, consulta también funciones de tipo de carácter.

Convertir a cadena

Puede convertir un valor en una cadena usando una conversión (cadena) o la función strval(). En expresiones donde se requiere una cadena, la conversión se produce automáticamente. Esto sucede cuando usas las funciones echo() o print(), o cuando comparas el valor de una variable con una cadena. La lectura de las secciones Tipos y Manipulación de tipos del manual aclarará lo siguiente. Véase también settype().

El valor booleano VERDADERO se convierte en la cadena "1" y el valor FALSO se representa como "" (la cadena vacía). De esta manera, puede convertir valores en ambas direcciones: de booleano a cadena y viceversa.

Un número entero o flotante se convierte en una cadena, representada por un número que consta de sus dígitos (incluido el exponente para los números de punto flotante).

Las matrices siempre se convierten a la cadena "Array", por lo que no puede mostrar el contenido de una matriz usando echo() o print() para ver lo que contiene. Para ver un solo elemento necesitas hacer algo como echo $arr["foo"]. Consulte a continuación para obtener consejos sobre cómo mostrar/ver todo el contenido.

Los objetos siempre se convierten a la cadena "Objeto". Si desea imprimir el valor de una variable miembro de objeto con fines de depuración, lea los siguientes párrafos. Si desea obtener el nombre de clase del objeto requerido, use get_class() .

Los recursos siempre se convierten en cadenas con la estructura "Id. de recurso n.º 1", donde 1 es el número de recurso único que PHP le asigna en tiempo de ejecución. Si desea obtener el tipo de recurso, utilice .

NULL siempre se convierte en una cadena vacía.

Como puede ver arriba, generar matrices, objetos o recursos no le brinda ninguna información útil sobre los valores en sí. Una mejor manera de imprimir valores para la depuración es utilizar las funciones print_r() y var_dump().

También puede convertir valores PHP en cadenas para almacenamiento persistente. Este método se llama serialización y se puede realizar usando la función serialize(). Además, si su instalación de PHP tiene soporte WDDX, puede serializar los valores de PHP en estructuras XML.

Convertir cadenas en números

Si la cadena se reconoce como un valor numérico, el valor y el tipo resultantes se determinan de la siguiente manera.

Una cadena se reconocerá como flotante si contiene alguno de los caracteres ".", "e" o "E". De lo contrario, se definirá como un número entero.

El valor está determinado por el comienzo de la cadena. Si la línea comienza con un valor numérico válido, se utilizará ese valor. De lo contrario el valor será 0 (cero). Un valor numérico válido es uno o más dígitos (que pueden contener un punto decimal), opcionalmente precedidos por un signo, seguido de un exponente opcional. El exponente es "e" o "E" seguido de uno o más dígitos.

$foo = 1 + "10,5"; // $foo es un flotante (11.5) $foo = 1 + "-1.3e3"; // $foo es un flotante (-1299) $foo = 1 + "bob-1.3e3"; // $foo es un número entero (1) $foo = 1 + "bob3"; // $foo es un número entero (1) $foo = 1 + "10 Cerditos"; // $foo es un número entero (11) $foo = 4 + "10.2 Cerditos"; // $foo es un flotante (14.2) $foo = "10.0 cerdos " + 1; // $foo es flotante (11) $foo = "10.0 cerdos " + 1.0; // $foo es flotante (11)

Para obtener más información sobre esta conversión, consulte la sección sobre strtod(3) en la documentación de Unix.

Si desea probar alguno de los ejemplos de esta sección, puede copiarlo y pegarlo junto con la siguiente línea para ver qué sucede:

Echo "\$foo==$foo; escriba: ". gettype($foo). "
\norte";

No espere obtener el código de un carácter convirtiéndolo a un número entero (como podría hacer en C, por ejemplo). Para convertir caracteres a sus códigos y viceversa, use ord() y




Arriba