Vra

As ek 'n veranderlike in PHP het wat 0001 en ek voeg 1 daarby, die resultaat is 2 in plaas van 0002.

Hoe los ek hierdie probleem op?

Was dit nuttig?

Oplossing

$foo = sprintf('%04d', $foo + 1);

Ander wenke

Dit sal jou waarskynlik help om die PHP-datatipes te verstaan ​​en hoe dit geraak word wanneer jy bewerkings met veranderlikes van verskillende tipes doen.Jy sê jy het "'n veranderlike in PHP sê 0001", maar watter tipe is daardie veranderlike?Waarskynlik 'n string, "0001", aangesien 'n heelgetal nie daardie waarde kan hê nie (dit is net 1).So wanneer jy dit doen:

echo ("0001" + 1);

...die + operateur sê, "Hm, dit is 'n string en 'n heelgetal.Ek weet nie hoe om 'n string en 'n int by te voeg nie.Maar ek weet WEL hoe om 'n string IN 'n int om te skakel, en dan twee ints bymekaar te tel, so laat ek dit doen," en dan verander dit "0001" na 1.Hoekom?Omdat die PHP-reëls vir die omskakeling van 'n string na 'n heelgetal sê dat enige aantal voorste nulle in die string weggegooi word.Wat beteken dat die string "0001" 1 word.

Dan die + sê: "Haai, ek weet hoe om 1 en 1 by te voeg.Dit is 2!" en die uitset van daardie stelling is 2.

Nog 'n opsie is die str_pad () funksie.

$text = str_pad($text, 4, '0', STR_PAD_LEFT);
<?php
#how many chars will be in the string
$fill = 6;
#the number
$number = 56;
#with str_pad function the zeros will be added
echo str_pad($number, $fill, '0', STR_PAD_LEFT);
// The result: 000056
?>
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top