Использование символов %s, %1$s, %2$s в PHP

Очень многим начинающим разработчикам рано или поздно попадаются в коде вот такие символы: %s%1$s%2$s. Для чего они нужны? Как влияют на код?

PHP
PHP

В качестве примера можно рассмотреть такой код:

the_content( sprintf(
    /* translators: %s: Name of current post. */
    wp_kses( __( 'Continue reading %s <span class="meta-nav">→</span>', 'humescores' ), array( 'span' => array( 'class' => array() ) ) ),
    the_title( '<span class="screen-reader-text">"', '"</span>', false )
    ) );

Фрагмент кода позаимствован из темы «underscores». Чтобы понимать как работают %s%1$s%2$s, мы разберем один пример, который приводят разработчики на PHP:

<?php
$num = 5;
$location = 'дереве';
 
$format = '%d обезьян сидят на %s';
echo sprintf($format, $num, $location);
?>

Ознакомьтесь в руководстве PHP с функцией sprintf.

Аргумент %2$s указывает очередность:

<?php
$format = 'На %2$s сидят %1$d обезьян';
echo sprintf($format, $num, $location);

Но многие предпочитают такому методу вставлять переменные в тело текстовой строки.

Опубликовано 16 января 2023 в 16:55
Обновлено 9 января 2024 в 14:12
Категория: Блог
Теги: