Я смотрю на Webmonkey's PHP and MySql Tutorial, Lesson 2. Я думаю, что это php литерал. Что означает %s
? Он находится внутри функции print_f()
в циклах while, по крайней мере, в первой паре блоков кода.
printf("<tr><td>%s %s</td><td>%s</td></tr>n", ...
.
с символами printf или sprintf, предшествующими знаку%, являются заполнителями (или токенами). Они будут заменены переменной, переданной в качестве аргумента.
Пример:
$str1 = 'best';
$str2 = 'world';
$say = sprintf('Tivie is the %s in the %s!', $str1, $str2);
echo $say;
Это выведет:
Тиви - лучшая в мире!
Примечание. Заполняет больше (% s для строки,% d для номера dec и т. Д.)...)
Заказ:
Порядок, в котором вы передаете аргументы, имеет значение. Если вы переключаете $ str1 с $ str2 как
$say = sprintf('Tivie is the %s in the %s!', $str2, $str1);
это будет печатать
«Тиви - это мир в лучшем виде!«
Вы можете, однако, изменить порядок чтения аргументов следующим образом:
$say = sprintf('Tivie is the %2$s in the %1$s!', $str2, $str1);
который напечатает предложение правильно.
Кроме того, имейте в виду, что PHP является динамическим языком и не требует (или поддерживает) явного определения типа. Это означает, что он жонглирует переменными типами по мере необходимости. В спринте это означает, что если вы передадите «строку» в качестве аргумента для заполнителя числа (% d), эта строка будет преобразована в число (int, float...) которые могут иметь странные результаты. Вот пример:
$onevar = 2;
$anothervar = 'pocket';
$say = sprintf('I have %d chocolate(s) in my %d.', $onevar, $anothervar);
echo $say;
это напечатает
У меня есть 2 шоколада в моем 0.
Больше чтения в PHPdocs
В printf
, %s
- это заполнитель для данных, которые будут вставлены в строку. Дополнительные аргументы printf
- это значения, которые будут вставлены. Они ассоциируются с заполнителями позиционно: первый заполнитель получает первое значение, второй - второе, и так далее.
%s
- это спецификатор типа, который в случае %s
будет заменен на значение valuable's (строка).
Кроме %s
вы можете использовать и другие спецификаторы, наиболее популярные из них приведены ниже:
d - аргумент рассматривается как целое число и представляется в виде (знакового) десятичного числа.
f - аргумент рассматривается как float и представляется как число с плавающей точкой (с учетом локали). с учетом локали).
s - аргумент рассматривается как строка и представляется в виде строки.
$num = 5;
$location = 'tree';
$format = 'There are %d monkeys in the %s';
echo sprintf($format, $num, $location);
Будет выведено: "На дереве сидят 5 обезьян."
Функция printf ()
или sprintf ()
записывает форматированную строку в переменную.
Вот синтаксис:
sprintf(format,arg1,arg2,arg++)
формат:
arg1 :
arg2 :
arg ++ :
Пример 1:
$number = 9;
$str = "New York";
$txt = sprintf("There are approximately %u million people in %s.",$number,$str);
echo $txt;
Это выведет:
В «Нью-Йорке» проживает около 9 миллионов человек.
Параметры arg1 , arg2 , arg ++ будут вставлены со знаками процента (%) в основной строке. Эта функция работает «пошагово». При первом знаке% вставляется arg1, на втором знаке% вставляется arg2 и т. Д.
Примечание : Если есть больше% признаков, чем аргументов, вы должны использовать заполнители. Заполнитель вставляется после знака% и состоит номера аргумента и "\ $". Давайте посмотрим другой пример:
Пример 2
$number = 123;
$txt = sprintf("With 2 decimals: %1\$.2f
<br>With no decimals: %1\$u",$number);
echo $txt;
Это выведет:
С 2 десятичными знаками:
123,00
Без десятичных знаков:123
Еще один важный совет, который нужно помнить, это:
С функциями
printf ()
иsprintf ()
escape-символ отсутствует обратная косая черта '\', а скорее '%'. Т.е. распечатать символ «%», который вам нужен убежать от этого сам:
printf ('%%% s%%', 'Nigeria Naira');
Это выведет:
% Нигерия Наира%
Не стесняйтесь исследовать официальную PHP Documentation