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.
sprintf()
.Odpowiedzi:
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$s
tł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.źródło
!Website::
. Po co tam podwójny dwukropek?::
Ma do czynienia z programowania obiektowego - w przypadkuWebsite::getThemeOption
, jesteś wywołanie funkcjigetThemeOption
należącej do klasyWebsite
.{$var}
pomaga PHP rozróżnić coś takiego jak{$complete_variable_name}
i{$prefix}_rest_of_name
, na przykład.