ฟังก์ชัน printf() เป็นการแสดงผล string ตามรูปแบบที่กำหนด ซึ่งฟังก์ชันนี้ มีลักษณะเช่นเดียวกับภาษา C เนื่องจากมันสืบทอดมาจากภาษา C นั่นเอง ซึ่งพารามิเตอร์ตัวแรกของฟังก์ชันนี้จะต้องเป็นรูปแบบที่ต้องการแสดงผลตามที่เรากำหนด ส่วนพารามิเตอร์ตัวต่อ ๆ ไปนั้นจะต้องเป็นค่าที่ต้องการแทนที่ไปยังรูปแบบนั้น ๆ เช่น
<?php
printf('%.2f', 500.2012931);
// 500.20
printf('Today is %04d-%02d-%02d', 2009, 1, 9);
// Today is 2009-01-09
?>
จะเห็นว่าค่าที่กำหนดในพารามิเตอร์ ตัวที่ 2, 3, ... นั้นจะเข้าไปแทนที่ในรูปแบบที่กำหนดไว้ในพารามิเตอร์ตัวแรก โดยมันจะแทนส่วนที่ขึ้นต้นด้วย % ตามด้วยรูปแบบที่มันกำหนดไว้ (ผมจะแสดงตารางรูปแบบไว้ด้านล่างนี้) เช่นในตัวอย่างใช้ %.2f หมายความว่าให้แสดงจุดทศนิยมเพียง 2 ตัวก็พอ และ %02d หมายความว่าให้แสดงตัวเลขสองหลัก เป็นต้น
| Specifier | ความหมาย |
|---|---|
| B | ต้องส่งพารามิเตอร์เป็น integer และจะถูกแสดงผลเป็น binary number |
| C | ต้องส่งพารามิเตอร์เป็น integer และจะถูกแสดงผลเป็นตัวอักษร |
| D | ต้องส่งพารามิเตอร์เป็น integer และจะถูกแสดงผลเป็น decimal number |
| e หรือ f | ต้องส่งพารามิเตอร์เป็น double และจะถูกแสดงผลเป็น floating-point[/storng] number |
| G | ต้องส่งพารามิเตอร์เป็น double แบบ precision และจะถูกแสดงผลเป็น floating-point |
| O | ต้องส่งพารามิเตอร์เป็น integer และจะถูกแสดงผลเป็นเลขฐานแปด |
| S | ต้องส่งพารามิเตอร์เป็น string และจะถูกแสดงผลเป็น string |
| U | ต้องส่งพารามิเตอร์เป็น integer แบบ unsigned (ไม่มีเครื่องหมาย) และจะถูกแสดงผลเป็น decimal number |
| x | ต้องส่งพารามิเตอร์เป็น integer และจะถูกแสดงผลเป็นเลขฐานสิบหก (แบบตัวอักษรตัวเล็ก) |
| X | ต้องส่งพารามิเตอร์เป็น integer และจะถูกแสดงผลเป็นเลขฐานสิบหก (แบบตัวอักษรตัวใหญ่) |
แต่ถ้าเราต้องการให้มันแสดงผลเครื่องหมาย '%' ในรูปแบบที่กำหนดนั้น เราจะต้องใส่ '%' ซ้อนเข้าไปเช่น '%%' เป็นต้น
printf('%.2f', 27.452);
// 27.45
printf('The hex value of %d is %x', 214, 214);
// The hex value of 214 is d6
printf('Genetic. Employee Code: %05d.', 212);
// Genetic. Employee Code: 00212
printf('%02d/%02d/%04d', $month, $day, $year);
// 09/28/2009
printf('%.2f%% Complete', 2.1);
// 2.10% Complete
printf('You've spent $%5.2f so far', 4.1);
// You've spent $ 4.10 so far
?>
ฟังก์ชัน sprintf() มีลักษณะเหมือนกับฟังก์ชัน printf() แต่มันจะทำการคืนค่าเป็น string กลับมาแทนการแสดงผลออกมา ซึ่งจะทำให้เราสามารถนำตัวแปรไปเก็บค่านั้น ๆ ได้ (จะต่างจาก printf() ตรงที่มันจะทำการแสดงผลออกมาเลย ไม่สามารถนำตัวแปรไปเก็บค่าได้) เช่น
<?php
$date = sprintf('%04d-%02d-%02d', $year, $month, $day);
echo $date;
// 2009-09-28
?>
ผู้สนับสนุน