Een geheel getal converteren naar een string in PHP

Is er een manier om een ​​geheel getal om te zetten in een string in PHP?


Antwoord 1, autoriteit 100%

U kunt de strval() gebruiken functie om een ​​getal naar een tekenreeks te converteren.

Vanuit een onderhoudsperspectief is het duidelijk wat je probeert te doen in plaats van enkele van de andere, meer esoterische antwoorden. Het hangt natuurlijk af van je context.

$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
// The two examples above have the same end value...
// ... And so do the two below
// Explicit cast 
$items = (string)$var; // $items === "5";
// Function call
$items = strval($var); // $items === "5";

Antwoord 2, autoriteit 12%

Er zijn veel manieren om dit te doen.

Twee voorbeelden:

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

Zie de PHP-handleiding op Typen Jongleren voor meer.


Antwoord 3, autoriteit 6%

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

Nu is $foo een string.

Maar misschien wil je wel even wennen aan casten. Omdat casten de juiste manier is om zoiets te bereiken:

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

Een andere manier is om tussen aanhalingstekens te zetten:

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

Antwoord 4

Er zijn een aantal manieren om een ​​geheel getal te “converteren” naar een string in PHP.

De traditionele manier van informatica zou zijn om de variabele als een string te casten:

$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";

U kunt ook profiteren van PHP’s impliciete typeconversie en tekenreeksinterpolatie:

$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";

Ten slotte, vergelijkbaar met het bovenstaande, kan elke functie die een tekenreeks accepteert en retourneert, worden gebruikt om een ​​geheel getal om te zetten. Overweeg het volgende:

$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";

Ik zou de laatste optie niet aanraden, maar ik heb in het wild code gezien die op dit gedrag vertrouwde, dus dacht ik geef het door.


Antwoord 5

Al deze antwoorden zijn geweldig, maar ze geven je allemaal een lege string terug als de waarde nul is.

Probeer het volgende:

    $v = 0;
    $s = (string)$v ? (string)$v : "0";

Antwoord 6

Gebruik:

$intValue = 1;
$string = sprintf('%d', $intValue);

Of het kan zijn:

$string = (string)$intValue;

Of:

settype(&$intValue, 'string');

Antwoord 7

Er zijn veel mogelijke conversiemethoden:

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

Antwoord 8

Je kunt de periode-operator gebruiken en er een tekenreeks aan toevoegen (en het wordt naar een tekenreeks gecast):

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

Of, beter gezegd, je kunt gewoon cast het gehele getal naar een string typen:

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

Antwoord 9

Zoals de antwoorden hier goed aantonen, ja, er zijn verschillende manieren. In PHP hoef je dat echter zelden echt te doen. De “dogmatische manier” om PHP te schrijven is om te vertrouwen op het losse typesysteem van de taal, dat het type transparant zal dwingen als dat nodig is. Voor gehele waarden is dit meestal probleemloos. Je moet echter heel voorzichtig zijn met drijvende-kommawaarden.


Antwoord 10

Ik zou zeggen dat het van de context afhangt. strval() of de casting-operator (string) kan worden gebruikt. In de meeste gevallen zal PHP echter beslissen wat goed voor je is als je het bijvoorbeeld gebruikt met echo of printf…

Eén kleine opmerking: die() heeft een string nodig en zal geen int tonen 🙂


Antwoord 11

$amount = 2351.25;
$str_amount = "2351.25";
$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount);    //string

Dus de echo zal string retourneren.


Antwoord 12

$num = 10;
"'".$num."'"

Probeer dit


Antwoord 13

U kunt eenvoudig het volgende gebruiken:

$intVal = 5;
$strVal = trim($intVal);

Antwoord 14

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

is sneller dan

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

LEAVE A REPLY

Please enter your comment!
Please enter your name here

14 − thirteen =

Other episodes