Яке значення% 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;- (знайдено тут )

Це питання може продовжуватися і далі ..., я знаю. Але подібні речі ніде не чітко пояснені. Я не просто хочу їх значення та цілей, але хочу певного внутрішнього / основного пояснення, щоб я міг зрозуміти їхні мотиви та те, як вони працюють.

А також, якщо такі речі вже чітко визначені в Кодексі, я хотів би їх прочитати. І хотілося б скласти список таких цікавих речей, якщо такий список уже розібраний.


3
Це все просто PHP. Див sprintf().
fuxia

Кодекс існує для надання специфічної для WordPress документації. Він не призначений для навчання PHP програмуванню, і всі ваші запитання стосуються програмування PHP. Документацію PHP можна знайти на php.net , а багато навчальних посібників для початківців PHP можна знайти за допомогою Google.
Бен Міллер - Згадайте Моніку

2
@BenMiller: Будьте терплячі, будь ласка. Перш ніж коментар Toscho, я навіть не знаю про позицію питання. Зараз майже зрозуміло відповідь Дейва.
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 Magic Constant, який замінюється повним шляхом до файлу, в якому знаходиться біт коду.


Перед початком закритий тільки останній простий: !Website::. Чому там подвійна кишка?
Mayeenul Islam

2
Це ::стосується об'єктно-орієнтованого програмування - у випадку Website::getThemeOptionви викликаєте функцію, getThemeOptionщо належить класу Website.
Пт J

2
Також: {$var}допомагає PHP розрізняти щось на зразок {$complete_variable_name}і {$prefix}_rest_of_name, наприклад.
Pat J

Подвійний двокрапковий перехід використовується для доступу лише до статичних або перекритих методів та властивостей класу, використовуючи звичайні методи -> напр., $ MyObject-> someMethod ();
ред-та
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.