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

Risultato:.aggiunta di stringa con il numero in php

 
23 
43 

Ho una domanda da questo calcolo $ a è una stringa e $ b è number.I sono l'aggiunta di entrambi e di stampa utilizzando l'eco la sua stampa 23 e stampa utilizzando il ritorno di stampa 43. Come è

+0

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

risposta

17

Gira "3dollars" come un numero, ottenendo $a = 3.

Quando si esegue il richiamo, si aggiunge 20 a $a, quindi stampa 23 e $a = 23.

Quindi, quando si stampa, si aggiunge nuovamente 20, quindi ora $a = 43.

+1

Come la sua sempre 3 da "3dollar"? – rynhe

+1

Ecco come PHP gestisce la stringa per le conversioni int. Seleziona il numero iniziale e ignora il resto. Per favore leggi il link postato da Phpenix come commento alla tua domanda. – xbonez

+0

Un link più appropriato: http://www.php.net/manual/en/language.types.string.php#language.types.string.conversion – xbonez

-2

Poiché hai creato una variabile per i due, memorizza il risultato di ciascuno, quindi quando hai aggiunto $ a a 20 farà eco 23 che memorizza nel sistema, quando stampi $ a che ora è 23 in Oltre a $ b che è 20. si otterrà 43.

-3

PHP tratta i '3dollars' come un intero 3 perché stringa che inizia con numeri interi e partecipando a operazione aritmetica, così

$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

Il modo giusto per aggiungere (che è tecnicamente concatenante) le stringhe sono

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

Il + operatore in PHP converte automaticamente stringhe in numeri, il che spiega il motivo per cui il codice di condotta arimethic invece di concatenazione

Problemi correlati