Функции sprintf и printf в PHP

Рассмотрим использование функций sprintf и printf в языке программирования PHP и применение их в WordPress.

sprintf

Функция sprintf похожа на printf, но используется для возврата результата в виде значения переменной, которая будет использоваться позже, а не сразу.

Ниже разница, которую вы можете проверить в файле функций дочерних тем.

sprintf

add_action('loop_start','sprintf_example' );

function sprintf_example() {		
    $output = sprintf('%s World', 'Hello' ); 
    echo $output;
}

printf

add_action('loop_start','printf_test' );

function printf_test() {		
	printf('%s World', 'Hello' ); 
}

Оба фрагмента кода дают точно такой же результат. Единственная разница заключается в том, что sprintf возвращает значение для переменной, а printf выводит значение непосредственно.

Так же вы можете писать код, используя sprintf:

add_action('loop_start','sprintf_example1' );

function sprintf_example1() {
    $text = "Hello";		
    $output = sprintf('%s World', $text ); 
    echo $output;
}

И так:

add_action('genesis_after_header','sprintf_example2' );

function sprintf_example2() {
    $link = get_permalink();
    $text = "Hello";		
    $output = sprintf('%s World', $text ); 
    printf( '<a href="%s">' . $output . '</a>', $link );
}

Или так:

add_action('wp_head','sprintf_example3' );

function sprintf_example3() {
    $link = get_permalink();
    $text = "sprintf";		
    $output = sprintf('%s Example', $text ); 
    printf( '<a href="%s">%s</a>', $link, $output );
}

printf

Рассмотрим использование функции PHP printf в WordPress, которая выводит отформатированную строку.

Официальная документация PHP — printf

Вероятно, вы видели в своих файлах код, который выглядит так:

printf('%s World', $var );

Этот код включает функцию printf(), которая в большинстве случаев более эффективна, чем использование функций echo или print.

Чтобы узнать больше об использовании кода PHP в WordPress вам необходимо понять, как работает функция printf.

Функция printf обычно включает знак процента % с символом s для строк:

%s

Можно printf использовать вместо функции print или echo, поэтому вместо этого:

echo "Hello World";

Или этого:

print( 'Hello World' );

Вы можете использовать printf следующим образом:

printf('%s World', "Hello" );

Знак процента % с буквой s работают как плейсхолдер, который преобразуются при выполнении кода. В приведенном выше случае %s заменяется текстом Hello.

Вот полный рабочий код, который вы можете протестировать в файле функций темы WordPress:

add_action('loop_start','printf_example1' );

function printf_example1() {
    printf('%s World', 'Hello' ); 
}

Затем вы можете заменить текст Hello переменной, чтобы значение переменной $text стало равно Hello:

$text = 'Hello';

Полный рабочий код, который вы можете протестировать в файле функций темы, будет следующим:

add_action('loop_start','printf_example2');

function printf_example2() {
    $text = 'Hello';
    printf('%s World', $text ); 
}

В темах WordPress вы найдете код, использующий printf, который вы можете вставить в файл functions.php дочерней темы, чтобы увидеть, как он работает:

add_action('loop_start','printf_example3');

function printf_example3() {
    printf( '<a href="%s">' . esc_html__( 'Your link text here', 'text-domain' ) . '</a>', 'http://example.com' ) ); 
}

В приведенном выше коде используется printf с одним экземпляром %s, который заменяется URL-адресом http://example.com при выполнении функции.

Приведенный выше код также можно записать так:

add_action('loop_start','printf_example4');

function printf_example4() {

    $link = esc_url( get_permalink() );
    $text = "Value for Your Text Variable";

    printf( '<a href="%s">%s</a>', $link, $text );
}

В этом случае мы заменили URL-адрес переменной с именем $link. Мы также заменили текст переменной с именем $text.

Значение переменной $link равно постоянной ссылке статьи, а не URL-адресу example.com, а значение переменной $text равно тексту.

Вы также заметите, что каждый параметр в строке разделен запятой, например:

$link, $text

При выполнении кода первый заменитель %s заменяется первым параметром, который в данном случае является переменной $link, равной get_permalink();.

После замены 1-го %s, 2-й, 3-й и т.д. заменяются шаг за шагом в порядке, в котором они встречаются в строке, разделенной запятой.

Справка. Порядок заполнителей %s должен соответствовать порядку аргументов в коде.

Вы также можете написать код следующим образом:

add_action('loop_start','printf_example5');

function printf_example5() {
    $text = "Value for Your Text Variable";

    printf( '<a href="%s">%s</a>', esc_url( get_permalink() ), $text );
}

Таким образом, 1-й параметр будет равен функции get_permalink, а не значению переменной $link, как в предыдущем примере.

Заключение

Функция printf используется для вывода отформатированной строки. Пример:

add_action('loop_start','printf_example6' );

function printf_example6() {
    printf('%s World', 'Hello' ); 
}

Функция sprintf возвращается в качестве значения для переменной, которая будет использоваться позже, после чего переменная может быть выведена с помощью echo или printf. Пример:

add_action('loop_start','printf_example7' );

function printf_example7() {
   $output = sprintf('%s World', 'Hello' ); 
   echo $output;
}

Если вы хотите что-либо добавить к статье — пишите в комментариях.

Опубликовано 16 января 2023 в 16:50 (обновлено 4 февраля 2023 в 01:32)

16 января 2023 в 16:50
,