Как использовать один и тот же параметр более одного раза?

Я знаю о sprintf(), но как я могу использовать один и тот же параметр более одного раза?

Если я использую следующий код, я получаю сообщение об ошибке об использовании нескольких параметров.

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

Я хочу дважды заменить %s на "test".


person kusanagi    schedule 10.01.2011    source источник


Ответы (2)


Используйте обозначение заполнителя с номером %$:

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

Здесь оба вхождения %1$s будут заменены на "test". Подробнее об этом читайте на sprintf() странице руководства.

person BoltClock    schedule 10.01.2011
comment
@kusanagi: Да, я напутал, замените двойные кавычки одинарными (или используйте %1\$s, но это некрасиво). - person BoltClock; 10.01.2011

Это называется "обмен аргументами" и описано в примере №3 здесь: http://php.net/sprintf. "%1$s", чтобы использовать аргумент 1, вы можете использовать его несколько раз в строке формата, как показано в примере № 4 онлайн-документации php.

person Mike Bretz    schedule 10.01.2011