Hàm vsprintf() trong PHP
Mô hình
Ghi chuỗi định dạng vào biến:
<?php $number = 9; $str = "Beijing"; $txt = vsprintf("Có 탢ệu xe đạp trong %s.", array($number, $str)); echo $txt; ?>
Định nghĩa và cách sử dụng
Hàm vsprintf() ghi chuỗi định dạng vào biến.
Khác với sprintf(), các tham số trong vsprintf() được đặt trong mảng. Các phần tử mảng sẽ được chèn vào các ký hiệu (%) trong chuỗi chính. Hàm này được thực hiện theo từng bước. Tại ký hiệu % đầu tiên, chèn phần tử mảng đầu tiên, tại ký hiệu % thứ hai, chèn phần tử mảng thứ hai, và thế tiếp theo.
Ghi chú:Nếu dấu % nhiều hơn arg Nếu có tham số, bạn phải sử dụng dấu chèn. Dấu chèn được chèn sau dấu %, bao gồm số và "\$". Xem ví dụ 2.
Lưu ý:Các hàm liên quan:
Cú pháp
vsprintf(Định dạng,argarray)
Tham số | Mô tả |
---|---|
Định dạng |
Bắt buộc. Định nghĩa chuỗi và cách định dạng các biến trong nó. Các giá trị định dạng có thể:
Giá trị định dạng bổ sung. Bắt buộc phải đặt giữa % và chữ cái (ví dụ: %.2f):
Ghi chú:Nếu sử dụng nhiều giá trị định dạng trên, chúng phải được sử dụng theo thứ tự trên, không được xáo trộn. |
argarray | Bắt buộc. Một mảng chứa các tham số, chúng sẽ được chèn vào Định dạng Ở ký tự % trong chuỗi. |
Chi tiết kỹ thuật
Giá trị trả về: | Trả về giá trị mảng dưới dạng chuỗi định dạng. |
Phiên bản PHP: | 4.1.0+ |
Các ví dụ khác
Ví dụ 1
Sử dụng giá trị định dạng %f:
<?php $num1 = 123; $num2 = 456; $txt = vsprintf("%f%f",array($num1,$num2)); echo $txt; ?>
Ví dụ 2
Sử dụng dấu đặt chỗ:
<?php $number = 123; $txt = vsprintf("Có hai chữ số thập phân:%1\$.2f<br>Không có chữ số thập phân:%1\$u",array($number)); echo $txt; ?>
Ví dụ 3
Sử dụng sprintf() để演示 tất cả các giá trị định dạng có thể:
<?php $num1 = 123456789; $num2 = -123456789; $char = 50; // ASCII 字符 50 là 2 // 注释:格式值 "%%" 返回百分号 echo sprintf("%%b = %b",$num1)."<br>"; // 二进制数 echo sprintf("%%c = %c",$char)."<br>"; // ASCII 字符 echo sprintf("%%d = %d",$num1)."<br>"; // 带符号的十进制数 echo sprintf("%%d = %d",$num2)."<br>"; // 带符号的十进制数 echo sprintf("%%e = %e",$num1)."<br>"; // 科学计数法(小写) echo sprintf("%%E = %E",$num1)."<br>"; // 科学计数法(大写) echo sprintf("%鑾u",$num1)."<br>"; // 不带符号的十进制数(正) echo sprintf("%鑾u",$num2)."<br>"; // 不带符号的十进制数(负) 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>"; // 八进制数 echo sprintf("%%s = %s",$num1)."<br>"; // 字符串 echo sprintf("%%x = %x",$num1)."<br>"; // Số hexa (chữ thường) echo sprintf("%%X = %X",$num1)."<br>"; // Số hexa (chữ hoa) echo sprintf("%%+d = %+d",$num1)."<br>"; // Ký hiệu chỉ số (dương) echo sprintf("%%+d = %+d",$num2)."<br>"; // Ký hiệu chỉ số (âm) ?>
Ví dụ 4
Giải thích về ký hiệu chuỗi:
<?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>"; ?>