Из ветки вопросов и ответов я пришел познакомиться с некоторыми старыми вещами, но, боюсь, я оказался в таком состоянии, что до сих пор не знаю их значения и не знаю, зачем их использовать.
%1$s
- (найдено для загрузки идентификатора виджета)%2$s
- (найдено для загрузки класса / классов виджетов)%s
- (найдено здесь )
И как работают следующие вещи? Я имею в виду, чем объясняется формат кода?
!Website::getThemeOption("format_post/{$post_format}/content/hide")):
- (найдено здесь )if( !wp_verify_nonce( $_POST['my_noncename'] ) plugin_basename( __FILE__ ) ) return;
- (найдено здесь )
Этот вопрос может продолжаться и продолжаться ... Я знаю. Но подобные вещи нигде не объяснены. Я не просто хочу понять их значение и цели, но хочу получить внутреннее / основное объяснение, чтобы я мог понять их мотивы и то, как они работают.
А также, если такие вещи уже четко определены в Кодексе, я бы с удовольствием их прочитал. И хотел бы иметь список таких любопытных вещей, если бы такой список уже разобрали.
sprintf()
.Ответы:
Это действительно более общий вопрос программирования на PHP и может быть закрыт по этой причине. Но прежде чем это произойдет, давайте посмотрим, смогу ли я кое-что прояснить для вас.
Те строки, которые начинаются со знаков%, находятся в формате «printf» . Например,
%2$s
переводится как «заменить этот токен вторым параметром и рассматривать его как строку».Когда вы видите переменную в фигурных скобках внутри строки, например
"Today is {$day}"
, это то же самое, что помещать переменную без фигурных скобок, например"Today is $day"
. Но форматирование переменной, как это, выделяет ее, поэтому более понятно, что там есть переменная. Это также предотвращает интерпретацию других символов рядом с именем переменной как части имени. Будет ли PHP знать, что делать без фигурных скобок"Your robot name would be {$firstName}Number5"
? Он будет видеть"$firstNameNumber5"
и искать переменную с именем $ firstNameNumber5 вместо просто $ firstName.Я не уверен, о чем вы спрашиваете в последнем примере. Это
__FILE__
вас смущает? Это магическая константа PHP, которая заменяется полным путем к файлу, в котором находится бит кода.источник
!Website::
. Почему двойная кишка там?::
связано с объектно-ориентированным программированием - в случаеWebsite::getThemeOption
, если вы вызываете функцию,getThemeOption
принадлежащую классуWebsite
.{$var}
помогает PHP различать что-то вроде{$complete_variable_name}
и{$prefix}_rest_of_name
, например.