Что означают% s,% 1 $ s и т. Д.?
-
-
Все это простой PHP.См. [`Sprintf ()`] (http://www.php.net/manual/en/function.sprintf.php).This is all plain PHP. See [`sprintf()`](http://www.php.net/manual/en/function.sprintf.php).
- 3
- 2013-09-27
- fuxia
-
Кодекс существует для предоставления документации по WordPress.Он не предназначен для обучения программированию на PHP,и все ваши вопросы касаются программирования на PHP.Документацию по PHP можно найти на [php.net] (http://php.net/),а множество руководств по PHP для начинающих можно найти с помощью Google.The Codex exists to provide WordPress-specific documentation. It is not intended to teach PHP programming, and all of your questions are about PHP programming. PHP documentation can be found at [php.net](http://php.net/), and lots of PHP beginner tutorials can by found using Google.
- 0
- 2013-09-27
- Ben Miller - Remember Monica
-
@BenMiller: Будьте терпеливы,пожалуйста.До комментарияtoscho я даже не знал о позиции вопроса.Теперь с ответом Дэйва почти все ясно.@BenMiller: Be patient please. Before toscho's comment, I's even unaware about the question's position. It's almost clear now with Dave's answer.
- 2
- 2013-09-27
- Mayeenul Islam
-
@MayeenulIslam,я просто пытался объяснить,почему вы не найдете таких объяснений в Кодексе.Извините,если я показался нетерпеливым.@MayeenulIslam, I was simply attempting to explain why you don't find such explanations in the Codex. I'm sorry if I came across as impatient.
- 0
- 2013-09-27
- Ben Miller - Remember Monica
-
1 ответ
- голосов
-
- 2013-09-27
Это действительно более общий вопрос программирования PHP,и по этой причине он может быть закрыт. Но прежде чем это произойдет,давайте посмотрим,не смогу ли я кое-что прояснить для вас.
Те строки,которые начинаются со знаков%,имеют "форматprintf" . Например,
%2$s
переводится как «заменить этот токен вторым параметром и рассматривать его как строку».Когда вы видите переменную в фигурных скобках внутри строки,например
"Today is {$day}"
,это то же самое,что поместить туда переменную без фигурных скобок,например"Today is $day"
. Но такое форматирование переменной выделяет ее,поэтому становится более понятным,что там переменная. Это также предотвращает интерпретацию других символов рядом с именем переменной как части имени. Будет ли PHP без фигурных скобок знать,что делать с"Your robot name would be {$firstName}Number5"
? Он увидит"$firstNameNumber5"
и будет искать переменную с именем $firstNameNumber5,а не просто $firstName.Я не понимаю,о чем вы спрашиваете в последнем примере. Вас смущает
__FILE__
? Это магическая константа PHP ,которая заменяется полным путем к файлу. этот фрагмент кода находится внутри.This is really more of a general PHP programming question and might get closed for that reason. But before that happens, let's see if I can't clear some of this up for you.
Those strings that start with % signs are in "printf format". For example,
%2$s
translates to "replace this token with the second parameter, and treat it like a string".When you see a variable in curly braces inside a string, like
"Today is {$day}"
, that's the same as putting the variable there without curly braces, like"Today is $day"
. But formatting the variable like this makes it stand out, so it's more clear there's a variable there. It also prevents other characters next to the variable name from getting interpreted as part of the name. Without curly braces, would PHP know what to do with"Your robot name would be {$firstName}Number5"
? It would see"$firstNameNumber5"
and look for a variable named $firstNameNumber5 instead of simply $firstName.I'm not sure what you're asking about in the last example. Is it the
__FILE__
you're confused by? That's a PHP Magic Constant that gets replaced with the full path to the file that bit of code is in.-
Перед закрытием последний простой: `! Website ::`.Почему там двойная кишка?Before getting closed just the last simple one: `!Website::`. Why the double colon there?
- 0
- 2013-09-27
- Mayeenul Islam
-
`::` имеет отношение к [объектно-ориентированному программированию] (http://php.net/manual/en/oop5.intro.php) - в случае `Website ::getThemeOption` вывызов функцииgetThemeOption,принадлежащей классу Website.The `::` has to do with [object-oriented programming](http://php.net/manual/en/oop5.intro.php) -- in the case of `Website::getThemeOption`, you're calling the function `getThemeOption` belonging to the class `Website`.
- 2
- 2013-09-27
- Pat J
-
Также: `{$ var}` помогает PHP различать,например,что-то вроде `{$ complete_variable_name}` и `{$prefix} _rest_of_name`.Also: `{$var}` helps PHP distinguish between something like `{$complete_variable_name}` and `{$prefix}_rest_of_name`, for example.
- 2
- 2013-09-27
- Pat J
-
Двойное двоеточие FIY используется для доступа только к статическим или переопределенным методам и свойствам класса,с обычными методами,которые вы используете -> например.$myObject-> someMethod ();FIY double colon is used to access only static or overridden methods and properties of a class, with regular methods you use -> e.g. $myObject->someMethod();
- 0
- 2015-06-11
- ed-ta
Из темы вопросов и ответов Мне пришлось встретиться с некоторыми старыми вещами,но,боюсь,я оказался в таком состоянии,что до сих пор не знаю их значения и не знаю,почему использовать их.
%1$s
- (найдено для загрузки идентификатора виджета)%2$s
- (найдено для загрузки класса/классов виджета)%s
- (найдено здесь )А как работают следующие вещи? Я имею в виду,что объяснение формата кода?
!Website::getThemeOption("format_post/{$post_format}/content/hide")):
- (найдено здесь )if( !wp_verify_nonce( $_POST['my_noncename'] ) plugin_basename( __FILE__ ) ) return;
- (найдено здесь )Этот вопрос можно продолжать и продолжать ... я знаю. Но подобные вещи нигде четко не объясняются. Мне нужны не только их смысл и цели,но и какое-то внутреннее/основное объяснение,чтобы я мог понять их мотивы и то,как они работают.
А также,если такие вещи уже четко определены в Кодексе,я бы с удовольствием их прочитал. И хотелось бы иметь список таких любопытных вещей,если такой список уже составлен.