sprintf sonuç sorun

3 Cevap php

İşte benim kod:

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

"0002" ve "00002" Nasıl bu kodun sonucu gelir mi? diğer bir deyişle, bir 0 eksik.

3 Cevap

% 04d içinde 4 yazdırılan değerin toplam genişliğini ayarlar

ilk parametresinde sayı "karakter sayısı" değil padding kullanmak için sıfırların sayısıdır. Ne arıyorsun yerine% 05d olduğunu.

Neden 'yerine '0011' nolu aşağıdaki yazdırma '0009 yapar daha ilginç bir soru?

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

Peki neden yine sekizlik gösterimi kullanıyorsunuz? Ben sadece merak ediyorum.