2011-01-10 38 views
6

tôi biết về sprintf nhưng làm thế nào tôi có thể sử dụng cùng một param ở bất kỳ nơi nào? Ví dụphp định dạng sprintf chuỗi

sprintf("blabla %s 11111 %s", "test"); 

-nó nói vài params, nhưng tôi muốn đặt 'test' trong hai nơi mà không trùng lặp

+0

http://php.net/sprintf – deceze

Trả lời

15

Sử dụng các ký hiệu %$ số giữ chỗ:

sprintf('blabla %1$s 11111 %1$s', "test"); 

Ở đây, cả hai lần xuất hiện của %1$s sẽ được thay thế bằng "test". Có nhiều hơn về điều này trong sprintf() manual page.

+1

không hoạt động, hiển thị Biến không xác định: s – kusanagi

+3

@ kusanagi: Vâng tôi đã sai, thay thế dấu ngoặc kép bằng dấu nháy đơn (hoặc sử dụng '% 1 \ $ s' nhưng đó là xấu xí). – BoltClock

4

này được gọi là "Đối số trao đổi" và tài liệu trong ví dụ # 3 ở đây: http://php.net/sprintf Sử dụng "%1$s", sử dụng lập luận 1, bạn có thể sử dụng nhiều lần trong chuỗi định dạng của bạn, như trong Ví dụ # 4 của tài liệu trực tuyến php .