Функции 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, которая выводит отформатированную строку.
Вероятно, вы видели в своих файлах код, который выглядит так:
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-й и т.д. заменяются шаг за шагом в порядке, в котором они встречаются в строке, разделенной запятой.
Вы также можете написать код следующим образом:
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)