ฟังก์ชัน vsprintf() ของ PHP
ตัวอย่าง
เขียนรูปแบบรูปแบบเข้าไปในตัวแปร:
<?php $number = 9; $str = "Beijing"; $txt = vsprintf("มี 洛นจักรยานใน %s.", array($number, $str)); echo $txt; ?>
การประกาศและการใช้งาน
ฟังก์ชัน vsprintf() จะเขียนรูปแบบของการรูปแบบเข้าไปในตัวแปร.
แต่แยกต่างกับ sprintf() แล้ว vsprintf() จะมีพารามิเตอร์อยู่ในแบบแรงจำแนก. ตัวเลือกของแบบแรงจำแนกจะถูกใส่เข้าไปในหลักฐานสตริงที่มีสัญญาณเซอร์ฟีส (%%) ตามลำดับ. ฟังก์ชันนี้จะทำงานแบบเชื่อมโยง. ที่จุดที่มี % แรกจะใส่ตัวเลือกแรก ที่จุดที่มี % แรกจะใส่ตัวเลือกที่สอง และอย่างนั้นต่อไป...
หมายเหตุ:ถ้ามีสัญญาณ % มากกว่า arg ถ้ามีตัวแปรที่ต้องการกำหนด คุณจะต้องใช้ตัวนำทาง % หลังจาก % รวมถึงตัวเลขและ "\$" ตัวอย่าง: ดูตัวอย่าง 2
คำเตือน:ฟังก์ชันที่เกี่ยวข้อง:
การใช้งาน
vsprintf(format,argarray)
ตัวแปร | คำอธิบาย |
---|---|
format |
จำเป็น。กำหนดข้อความและวิธีการรูปแบบตัวแปรในข้อความ ค่ารูปแบบที่เป็นไปได้
ค่ารูปแบบเพิ่มเติม
หมายเหตุ:ถ้าใช้ค่ารูปแบบหลายค่า ต้องใช้ตามลำดับที่กำหนดข้างต้น และไม่ควรที่จะสับเปลี่ยนลำดับ |
argarray | จำเป็น。ตัวแปรหนึ่งตัวเลขกับตัวแปรอีกตัวเลขซึ่งจะถูกใส่ลง format ที่สัญญาณ % ในข้อความ |
รายละเอียดเทคนิค
ค่าที่คืนค่ามา | คืนค่าแบบตัวแสดงค่าแบบข้อความ |
เวอร์ชัน PHP: | 4.1.0+ |
ตัวอย่างเพิ่มเติม
ตัวอย่าง 1
ใช้ค่ารูปแบบ %f:
<?php num1 = 123; num2 = 456; txt = vsprintf("%f%f",array($num1,$num2)); echo $txt; ?>
ตัวอย่าง 2
ใช้ตัวจุดยืน
<?php $number = 123; $txt = vsprintf("มีสองตัวเลขทศนิยม:%1\$.2f<br>ไม่มีตัวเลขทศนิยม:%1\$u",array($number)); echo $txt; ?>
ตัวอย่าง 3
ใช้ sprintf() ในการแสดงรูปแบบทั้งหมดที่เป็นไปได้:
<?php $num1 = 123456789; $num2 = -123456789; $char = 50; // อักษร ASCII 50 คือ 2 // หมายเหตุ: รูปแบบ "%%" ส่งคืนสัญญาณเปอร์เซนต์ echo sprintf("%%b = %b",$num1)."<br>"; // ตัวเลขเลขฐาน2 echo sprintf("%%c = %c",$char)."<br>"; // อักษร ASCII echo sprintf("%%d = %d",$num1)."<br>"; // ตัวเลขเลขฐาน10 (มีสัญญาณ) echo sprintf("%%d = %d",$num2)."<br>"; // ตัวเลขเลขฐาน10 (มีสัญญาณ) echo sprintf("%%e = %e",$num1)."<br>"; // ระบบนับเลขวิทยาศาสตร์ (เล็กขึ้น) echo sprintf("%%E = %E",$num1)."<br>"; // ระบบนับเลขวิทยาศาสตร์ (ใหญ่ขึ้น) echo sprintf("%鑾u",$num1)."<br>"; // ตัวเลขเลขฐาน10 (มีสัญญาณ) echo sprintf("%鑾u",$num2)."<br>"; // ตัวเลขเลขฐาน10 (ไม่มีสัญญาณ) echo sprintf("%%f = %f",$num1)."<br>"; // ตัวเลขเลขฐานจุด (มีส่วนของภูมิภาค) echo sprintf("%%F = %F",$num1)."<br>"; // ตัวเลขเลขฐานจุด (ไม่มีส่วนของภูมิภาค) echo sprintf("%%g = %g",$num1)."<br>"; // ขนาดเล็กกว่า %e และ %f echo sprintf("%%G = %G",$num1)."<br>"; // ขนาดเล็กกว่า %E และ %f echo sprintf("%%o = %o",$num1)."<br>"; // ตัวเลขเลขฐาน8 echo sprintf("%%s = %s",$num1)."<br>"; // รหัสสตริง echo sprintf("%%x = %x",$num1)."<br>"; // ตัวเลขสิบหก (เล็ก) echo sprintf("%%X = %X",$num1)."<br>"; // ตัวเลขสิบหก (ใหญ่) echo sprintf("%%+d = %+d",$num1)."<br>"; // สัญญาณนำหน้า echo sprintf("%%+d = %+d",$num2)."<br>"; // สัญญาณนำหน้า ?>
ตัวอย่าง 4
การแสดงสัญญาณของตัวแปร
<?php $str1 = "Hello"; $str2 = "Hello world!"; echo vsprintf("[%s]",array($str1))."<br>"; echo vsprintf("[%8s]",array($str1))."<br>"; echo vsprintf("[%-8s]",array($str1))."<br>"; echo vsprintf("[%08s]",array($str1))."<br>"; echo vsprintf("[%'*8s]",array($str1))."<br>"; echo vsprintf("[%8.8s]",array($str2))."<br>"; ?>