Зачем в PHP (WordPress) нужны %s, %1$s, %2$s

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

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

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);

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

Опубликовано 17 апреля 2024 в 00:11
Обновлено 30 апреля 2024 в 00:34
Категория: Блог