Dizenizi biçimlendirmek için sprintf () kullanmak çok daha temiz ve güvenlidir.
Örneğin, giriş değişkenleriyle uğraşırken, beklenen biçimi önceden belirterek (örneğin, dize [ %s
] veya sayı [ %d
]) beklediğinizden beklenmeyen sürprizleri önler . Bu potansiyel olarak SQL enjeksiyonu riskine yardımcı olabilir , ancak dizenin tırnak içinde olup olmadığını engellemez.
Ayrıca, yüzer öğelerle başa çıkmanıza yardımcı olur, %.2f
dönüştürme işlevlerini kullanmanıza engel olan basamak hassasiyetini (ör. ) Açıkça belirtebilirsiniz .
Diğer avantajlar, büyük programlama dillerinin çoğunun kendi uygulamalarına sahip olmasıdır sprintf()
, bu yüzden bir kez aşina olduğunuzda, yeni bir dil öğrenmek (dizeleri birleştirmek veya şamandıraları dönüştürmek gibi) yerine kullanmak daha da kolaydır.
Özetle, daha temiz ve daha okunabilir bir koda sahip olmak için kullanmak iyi bir uygulamadır.
Örneğin, aşağıdaki gerçek örneğe bakın :
$insert .= "('".$tr[0]."','".$tr[0]."','".$tr[0]."','".$tr[0]."'),";
Veya, örneğin '1','2','3','4'
:
print "foo: '" . $a . "','" . $b . "'; bar: '" . $c . "','" . $d . "'" . "\n";
ve biçimlendirilmiş dize ile yazdırma:
printf("foo: '%d','%d'; bar: '%d','%d'\n", $a, $b, $c, $d);
where printf()
ile eşdeğerdir sprintf()
, ancak onu döndürmek yerine (değişkene) biçimlendirilmiş bir dize çıktılar.
Hangisi daha okunabilir?