2010-10-06 5 views
2

Je voudrais incrémenter une valeur dans un format à 3 chiffres.PHP - Incrémenter une valeur

Par exemple:

$start_value = 000; 
while() { 
do something; 
$start_value++; 
} 

De cette façon je ce résultat:

$start_value = 000; 
$start_value = 1; 
$start_value = 2; 
$start_value = 3; 

et ainsi de suite

au lieu de '001', '002', '003'

Comment puis-je obtenir ce résultat?

Répondre

3

Vous faites une grosse erreur. 000 dans le code est un nombre octal. Tout nombre littéral commençant par 0 dans de nombreux langages de programmation est considéré comme un littéral octal. Si vous voulez stocker 000, vous avez besoin d'une chaîne, pas d'un nombre.

$start_value = "000"; 
while() { 
    do something; 
    $start_value = str_pad((int) $start_value++, 3 ,"0",STR_PAD_LEFT); 
} 
9

En utilisant sprintf vous pouvez accomplir ceci avec:

echo sprintf("%03d", $start_value++) . "<br>"; 

Espérons que c'est ce que vous étiez après.

La mise en œuvre avec votre code:

$start_value = 000; 
while() { 
    do something; 
    $start_value = sprintf("%03d", $start_value++); 
} 
0

Il va comme ceci. En PHP il n'y a pas de concept de type de données tout est déterminé en runtime selon où et comment il est utilisé.

<?php 
$start_value = 000; 
while ($start_value < 10) { 
//your logic goes here 
    $start_value++; 
printf("[%03s]\n",$start_value); 
} 
?> 

sortie: [001] [002] [003] [004] [005] [006] [007] [008] [009] [010]

vous pouvez donc faire tout le calcul . Où que vous vouliez imprimer la valeur, vous pouvez utiliser printf avec les spécificateurs de format. J'espère que cela aide.

Questions connexes