Qual é o significado de% s,% 1 $ s etc.? [fechadas]

14

Em um tópico de perguntas e respostas, encontrei algumas coisas antigas, mas receio que me encontrei em uma condição que, ainda não sei o significado delas e não sei por que usá-las.

  • %1$s - (encontrado para carregar o ID do widget)
  • %2$s - (encontrado para carregar classes / classes de widgets)
  • %s- (encontrado aqui )

E como as seguintes coisas funcionam? Quero dizer, qual é a explicação do formato de código?

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

Esta pergunta pode continuar ... Eu sei. Mas coisas como essas não são explicadas claramente em lugar algum. Eu não quero apenas o significado e os propósitos deles, mas quero uma explicação interna / central para que eu possa entender seus motivos e como eles funcionam.

E também, se essas coisas já estiverem claramente definidas no Codex, eu adoraria lê-las. E adoraria ter uma lista de coisas tão curiosas se essa lista já estiver resolvida.

Mayeenul Islam
fonte
3
Tudo isso é PHP simples. Veja sprintf().
fuxia
O Codex existe para fornecer documentação específica do WordPress. Não se destina a ensinar programação PHP, e todas as suas perguntas são sobre programação PHP. A documentação do PHP pode ser encontrada em php.net , e muitos tutoriais para iniciantes em PHP podem ser encontrados usando o Google.
Ben Miller - Restabelecer Monica
2
@ BenMiller: Seja paciente, por favor. Antes do comentário de toscho, eu nem tenho conhecimento da posição da pergunta. Agora está quase claro com a resposta de Dave.
Mayeenul Islam
@ MayeenulIslam, eu estava simplesmente tentando explicar por que você não encontra essas explicações no Codex. Me desculpe se me pareceu impaciente.
Ben Miller - Restabelecer Monica

Respostas:

11

Esta é realmente uma questão geral de programação PHP e pode ser fechada por esse motivo. Mas antes que isso aconteça, vamos ver se não consigo esclarecer um pouco disso.

As cadeias que começam com sinais de% estão no "formato printf" . Por exemplo, %2$straduz para "substitua esse token pelo segundo parâmetro e trate-o como uma string".

Quando você vê uma variável entre chaves dentro de uma string, "Today is {$day}"é como colocar a variável lá sem chaves, como "Today is $day". Mas formatar a variável assim faz com que ela se destaque, por isso é mais claro que existe uma variável lá. Também impede que outros caracteres próximos ao nome da variável sejam interpretados como parte do nome. Sem chaves, o PHP saberia o que fazer "Your robot name would be {$firstName}Number5"? Ele veria "$firstNameNumber5"e procuraria uma variável chamada $ firstNameNumber5 em vez de simplesmente $ firstName.

Não tenho certeza do que você está perguntando no último exemplo. É por isso que __FILE__você está confuso? Essa é uma constante mágica do PHP que é substituída pelo caminho completo para o arquivo em que parte do código está.

Dave Ross
fonte
Antes de se fechou apenas o último simples: !Website::. Por que o cólon duplo lá?
Mayeenul Islam
2
Isso ::tem a ver com programação orientada a objetos - no caso de Website::getThemeOption, você está chamando a função getThemeOptionpertencente à classe Website.
Pat J
2
Além disso: {$var}ajuda o PHP a distinguir entre algo como {$complete_variable_name}e {$prefix}_rest_of_name, por exemplo.
Pat J
FIY dois pontos duplos é usado para acessar apenas métodos e propriedades estáticos ou substituídos de uma classe, com métodos regulares que você usa -> por exemplo, $ myObject-> someMethod ();
ed-ta