Domanda

Esiste un modo per convertire un numero intero in una stringa in PHP?

È stato utile?

Soluzione

Puoi utilizzare strval () funzione per convertire un numero in una stringa.

Dal punto di vista della manutenzione è ovvio quello che stai cercando di fare piuttosto che alcune delle altre risposte più esoteriche. Certo, dipende dal tuo contesto.

$var = 5;

// Inline variable parsing
echo "I'd like {$var} waffles"; // = "I'd like 5 waffles

// String concatenation 
echo "I'd like ".$var." waffles"; // I'd like 5 waffles

// Explicit cast 
$items = (string)$var; // $items === "5";

// Function call
$items = strval($var); // $items === "5";

Altri suggerimenti

Esistono molti modi per farlo.

Due esempi:

 $str = (string) $int;
 $str = "$int";     

Vedi il manuale di PHP su Tipi Giocoleria per di più.

$foo = 5;

$foo = $foo . "";

ora $ foo è una stringa.

Ma potresti voler abituarti al casting. Poiché il casting è il modo corretto di realizzare qualcosa del genere.

$foo = 5;    
$foo = (string)$foo;

Un altro modo è incapsulare tra virgolette:

$foo = 5;
$foo = "$foo"

Esistono diversi modi per " convertire " un numero intero a una stringa in PHP.

Il modo CS tradizionale sarebbe quello di lanciare la variabile come stringa

$int = 5;
$int_as_string = (string) $int;
echo $int . ' is a '. gettype($int) . "\n"; 
echo $int_as_string . ' is a '. gettype($int_as_string) . "\n";

Puoi anche trarre vantaggio dalla conversione di tipo implicito di PHP e dall'interpolazione di stringhe

$int = 5;
echo $int . ' is a '. gettype($int) . "\n"; 

$int_as_string = "$int";
echo $int_as_string . ' is a '. gettype($int_as_string) . "\n"; 

$string_int = $int.'';
echo $int_as_string . ' is a '. gettype($int_as_string) . "\n";     

Infine, analogamente a quanto sopra, qualsiasi funzione che accetta e restituisce una stringa può essere utilizzata per convertire e interi. Considera quanto segue

$int = 5;
echo $int . ' is a '. gettype($int) . "\n"; 

$int_as_string = trim($int);
echo $int_as_string . ' is a '. gettype($int_as_string) . "\n"; 

Non consiglierei l'opzione finale, ma ho visto il codice in natura che si basava su questo comportamento, quindi ho pensato di passarlo.

Tutte queste risposte sono ottime, ma tutte ti restituiscono una stringa vuota se il valore è zero.

Prova quanto segue:

$v = 0;

$s = (string)$v : (string)$v ? "0";
$intValue = 1; 
$string = sprintf('%d',$intValue ); 

o potrebbe essere:

$string = (string)$intValue ; 

o:

settype(&$intValue ,'string');  

Esistono molti modi di conversione possibili:

$input => 123
sprintf('%d',$input) => 123
(string)$input => 123
strval($input) => 123
settype($input, "string") => 123

Puoi utilizzare l'operatore punto e concatenare una stringa (e verrà digitato come cast su una stringa):

$integer = 93;
$stringedInt = $integer."";

O, più correttamente, puoi semplicemente digitare cast l'intero in una stringa:

$integer = 93;
$stringedInt = (string) $integer;

Direi che dipende dal contesto. strval () o l'operatore di casting (stringa) può essere utilizzato, tuttavia nella maggior parte dei casi PHP deciderà cosa è buono per te, se ad esempio lo usi con echo o printf ... Una piccola nota: die () ha bisogno di una stringa e non mostrerà alcun int :)

Come dimostrano bene le risposte, sì, ci sono diversi modi. Tuttavia, in PHP raramente è necessario farlo. Il "modo dogmatico" scrivere PHP è fare affidamento sul sistema di digitazione libera della lingua, che forzerà in modo trasparente il tipo secondo necessità. Per i valori interi, questo di solito è senza problemi. Tuttavia, dovresti stare molto attento ai valori in virgola mobile.

Puoi semplicemente usare quanto segue:

$intVal = 5;
$strVal = trim($intVal);
$amount = 2351.25;
$str_amount = "2351.25";

$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount);

Quindi l'eco tornerà stringa

$integer = 93;
$stringedInt = $integer.'';

è più veloce di

$integer = 93;
$stringedInt = $integer."";
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top