2009-04-06 6 views
1

Voici mon code:problème de résultats sprintf

<?php 
$variable1 = 00001; 
$variable2 = (sprintf('%04d', $variable1 + 1)); 
echo $variable2; 
?> 

Comment se fait le résultat de ce code est "0002" et non "00002"? en d'autres termes, il manque un 0.

Répondre

7

Le 4% en 04d définit la largeur totale de la valeur imprimée

+0

Oh je vois, merci beaucoup :) – Ryan

4

le nombre dans le premier paramètre est le « nombre total de caractères » pas le nombre de zéros à utiliser dans le rembourrage. Ce que vous cherchez, c'est% 05d à la place.

1

Une question plus intéressante est la suivante: pourquoi '0009' est-il imprimé au lieu de '0011'?

<?php 
$var = 0010; 
$str = sprintf('%04d', $var+1); 
echo $str; 
?> 

Alors, pourquoi utilisez-vous une représentation octale? Je suis juste curieux.

Questions connexes