Что означает% s,% 1 $ s и т. Д.? [закрыто]

14

Из ветки вопросов и ответов я пришел познакомиться с некоторыми старыми вещами, но, боюсь, я оказался в таком состоянии, что до сих пор не знаю их значения и не знаю, зачем их использовать.

  • %1$s - (найдено для загрузки идентификатора виджета)
  • %2$s - (найдено для загрузки класса / классов виджетов)
  • %s- (найдено здесь )

И как работают следующие вещи? Я имею в виду, чем объясняется формат кода?

  • !Website::getThemeOption("format_post/{$post_format}/content/hide")):- (найдено здесь )
  • if( !wp_verify_nonce( $_POST['my_noncename'] ) plugin_basename( __FILE__ ) ) return;- (найдено здесь )

Этот вопрос может продолжаться и продолжаться ... Я знаю. Но подобные вещи нигде не объяснены. Я не просто хочу понять их значение и цели, но хочу получить внутреннее / основное объяснение, чтобы я мог понять их мотивы и то, как они работают.

А также, если такие вещи уже четко определены в Кодексе, я бы с удовольствием их прочитал. И хотел бы иметь список таких любопытных вещей, если бы такой список уже разобрали.

Mayeenul Ислам
источник
3
Это все простой PHP. См sprintf().
fuxia
Кодекс существует для предоставления документации по WordPress. Он не предназначен для обучения программированию на PHP, и все ваши вопросы касаются программирования на PHP. Документацию по PHP можно найти на php.net , а многие учебники по PHP для начинающих можно найти с помощью Google.
Бен Миллер - Восстановить Монику
2
@BenMiller: наберитесь терпения, пожалуйста. Перед комментарием Тошо я даже не знаю о позиции вопроса. Теперь с ответом Дейва это почти ясно.
Mayeenul Islam
@ MayeenulIslam, я просто пытался объяснить, почему вы не найдете таких объяснений в Кодексе. Мне жаль, если я столкнулся с нетерпением.
Бен Миллер - Восстановить Монику

Ответы:

11

Это действительно более общий вопрос программирования на PHP и может быть закрыт по этой причине. Но прежде чем это произойдет, давайте посмотрим, смогу ли я кое-что прояснить для вас.

Те строки, которые начинаются со знаков%, находятся в формате «printf» . Например, %2$sпереводится как «заменить этот токен вторым параметром и рассматривать его как строку».

Когда вы видите переменную в фигурных скобках внутри строки, например "Today is {$day}", это то же самое, что помещать переменную без фигурных скобок, например "Today is $day". Но форматирование переменной, как это, выделяет ее, поэтому более понятно, что там есть переменная. Это также предотвращает интерпретацию других символов рядом с именем переменной как части имени. Будет ли PHP знать, что делать без фигурных скобок "Your robot name would be {$firstName}Number5"? Он будет видеть "$firstNameNumber5"и искать переменную с именем $ firstNameNumber5 вместо просто $ firstName.

Я не уверен, о чем вы спрашиваете в последнем примере. Это __FILE__вас смущает? Это магическая константа PHP, которая заменяется полным путем к файлу, в котором находится бит кода.

Дейв Росс
источник
Перед началом закрыт только последний простой: !Website::. Почему двойная кишка там?
Mayeenul Islam
2
Это ::связано с объектно-ориентированным программированием - в случае Website::getThemeOption, если вы вызываете функцию, getThemeOptionпринадлежащую классу Website.
Пэт Дж
2
Также: {$var}помогает PHP различать что-то вроде {$complete_variable_name}и {$prefix}_rest_of_name, например.
Пэт Дж
Двойное двоеточие FIY используется для доступа только к статическим или переопределенным методам и свойствам класса с использованием обычных методов -> например, $ myObject-> someMethod ();
ed-ta