2012-06-14 7 views
13
$a = "3dollars"; 
$b = 20; 
echo $a += $b; 
print($a += $b); 

Resultado:.Adición de cadena con el número en php

 
23 
43 

tengo una pregunta de este cálculo $ a es una cadena y $ b se number.I añado tanto e imprimir con su eco de impresión 23 e imprimir utilizando la devolución impresa 43.¿Cómo es

+0

http://php.net/language.types.type-juggling –

Respuesta

17

Se arroja '3dollars' como un número, obteniendo $a = 3.

Cuando hace eco, agrega 20, a $a, por lo que imprime 23 y $a = 23.

Luego, cuando imprima, agregue nuevamente 20, entonces ahora $a = 43.

+1

Cómo conseguir su 3 de "3dollar"? – rynhe

+1

Así es como PHP maneja las conversiones de cadena a int. Selecciona el número principal e ignora el resto. Por favor, lea el enlace publicado por Phpenix como un comentario a su pregunta. – xbonez

+0

Un enlace más apropiado: http://www.php.net/manual/en/language.types.string.php#language.types.string.conversion – xbonez

-2

Dado que ha creado una variable para los dos, almacena el resultado de cada uno, de modo que cuando agregue $ a a 20 se repetirá 23 qué almacenes en el sistema, cuando imprima $ a que ahora es 23 en Además de $ b, que es 20. Usted recibirá 43.

-3

PHP trata 3dollars '' como un entero de 3 a causa de cadena a partir de número entero y participar en una operación aritmética, por lo

$a = "3dollars"; 
    $b = 20; 
    echo $a += $b; 
    it echo 23; //$a=$a+$b; 

    now $a = 23 + 20; 
    print($a += $b); //$a=$a+$b; 
    it print 43; 
-1

La forma correcta de añadir (que es técnicamente concatenado) strings es

$a = 7; 
$b = "3 dollars"; 
print ($a . $b); // 73 dollars 

El operador + en PHP automáticamente convierte cadena en los números, lo que explica por qué su código lleva a cabo arimethic en lugar de la concatenación

Cuestiones relacionadas