Jakie jest znaczenie% s,% 1 $ s itp.? [Zamknięte]

14

Z wątku „Pytania i odpowiedzi” przyszedłem spotkać się ze starymi rzeczami, ale obawiam się, że znalazłem się w stanie, w którym nadal nie znam ich znaczenia i nie wiem, dlaczego ich używać.

  • %1$s - (znaleziono ładowanie identyfikatora widżetu)
  • %2$s - (znaleziono ładowanie klasy / klas widżetów)
  • %s- (znaleziono tutaj )

A jak działają następujące rzeczy? Mam na myśli, jakie jest wyjaśnienie formatu kodu?

  • !Website::getThemeOption("format_post/{$post_format}/content/hide")):- (znaleziono tutaj )
  • if( !wp_verify_nonce( $_POST['my_noncename'] ) plugin_basename( __FILE__ ) ) return;- (znaleziono tutaj )

To pytanie może trwać bez końca ... Wiem. Ale takie rzeczy nie są nigdzie jasno wyjaśnione. Ja nie tylko chcę ich znaczenia i celów, ale potrzebuję wewnętrznych / podstawowych wyjaśnień, aby móc zrozumieć ich motywy i sposób, w jaki działają.

Ponadto, jeśli takie rzeczy są już jasno określone w Kodeksie, chętnie je przeczytam. I chciałbym mieć listę takich ciekawych rzeczy, jeśli taka lista jest już uporządkowana.

Mayeenul Islam
źródło
3
To wszystko jest zwykłym PHP. Zobaczyć sprintf().
fuxia
Kodeks istnieje w celu dostarczenia dokumentacji związanej z WordPress. Jego celem nie jest nauczanie programowania PHP, a wszystkie pytania dotyczą programowania PHP. Dokumentację PHP można znaleźć na stronie php.net , a wiele samouczków dla początkujących PHP można znaleźć za pomocą Google.
Ben Miller - Pamiętaj Monikę
2
@BenMiller: Prosimy o cierpliwość. Przed komentarzem toscho nie jestem nawet świadomy pozycji pytania. Teraz odpowiedź jest prawie jasna.
Mayeenul Islam,
@MayeenulIslam, po prostu próbowałem wyjaśnić, dlaczego nie znajdziesz takich wyjaśnień w Kodeksie. Przepraszam, jeśli okazałem się niecierpliwy.
Ben Miller - Pamiętaj Monikę

Odpowiedzi:

11

To jest naprawdę ogólne pytanie dotyczące programowania PHP i może zostać zamknięte z tego powodu. Ale zanim to nastąpi, zobaczmy, czy nie mogę wyjaśnić ci tego.

Te ciągi rozpoczynające się od znaku% są w „formacie printf” . Na przykład %2$stłumaczy się jako „zamień ten token na drugi parametr i traktuj go jak ciąg”.

Kiedy widzisz zmienną w nawiasach klamrowych wewnątrz łańcucha, to tak "Today is {$day}"samo, jak umieszczenie tam zmiennej bez nawiasów klamrowych, jak "Today is $day". Ale sformatowanie zmiennej w ten sposób wyróżnia ją, więc jest bardziej jasne, że jest tam zmienna. Zapobiega również interpretacji innych znaków obok nazwy zmiennej jako części nazwy. Czy bez nawiasów klamrowych PHP wiedziałby, co zrobić "Your robot name would be {$firstName}Number5"? Zobaczyłby "$firstNameNumber5"i szukał zmiennej o nazwie $ firstNameNumber5 zamiast po prostu $ firstName.

Nie jestem pewien, o co pytasz w ostatnim przykładzie. Czy to __FILE__mylisz się? To stała magiczna PHP, która zostaje zastąpiona pełną ścieżką do pliku, w którym znajduje się bit kodu.

Dave Ross
źródło
Przed uzyskiwanie zamknięte tylko ostatni proste: !Website::. Po co tam podwójny dwukropek?
Mayeenul Islam,
2
::Ma do czynienia z programowania obiektowego - w przypadku Website::getThemeOption, jesteś wywołanie funkcji getThemeOptionnależącej do klasy Website.
Pat J
2
Ponadto: {$var}pomaga PHP rozróżnić coś takiego jak {$complete_variable_name}i {$prefix}_rest_of_name, na przykład.
Pat J
Podwójny dwukropek FIY służy do uzyskiwania dostępu tylko do statycznych lub przesłoniętych metod i właściwości klasy, przy użyciu zwykłych metod -> np. $ MyObject-> someMethod ();
ed-ta