Qual è il significato di %s, %1$s ecc.?

27 set 2013, 17:15:42
Visualizzazioni: 89.9K
Voti: 18

Da una discussione Q&A mi sono imbattuto in alcune cose del passato, ma mi trovo nella condizione di non conoscerne ancora il significato e non sapere perché utilizzarle.

  • %1$s - (trovato per caricare l'ID del widget)
  • %2$s - (trovato per caricare la/le classe/i del widget)
  • %s - (trovato qui)

E come funzionano le seguenti cose? Intendo quale è la spiegazione del formato del codice?

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

So che questa domanda potrebbe continuare all'infinito... Lo so. Ma cose come queste non sono chiaramente spiegate da nessuna parte. Non voglio solo conoscere il loro significato e scopo, ma vorrei anche una spiegazione interna/core per capire le loro motivazioni e come funzionano.

Inoltre, se tali argomenti sono già chiaramente definiti nel Codex, mi piacerebbe leggerli. E mi piacerebbe avere una lista di queste curiosità se tale elenco è già stato compilato.

7
Commenti

Questo è tutto PHP semplice. Vedi sprintf().

fuxia fuxia
27 set 2013 17:23:58

Il Codex esiste per fornire documentazione specifica per WordPress. Non è pensato per insegnare la programmazione PHP, e tutte le tue domande riguardano la programmazione PHP. La documentazione PHP può essere trovata su php.net, e molti tutorial per principianti PHP possono essere trovati usando Google.

Ben Miller Ben Miller
27 set 2013 17:50:03

@BenMiller: Per favore, abbi pazienza. Prima del commento di toscho, non ero nemmeno a conoscenza della posizione della domanda. Ora è quasi tutto chiaro con la risposta di Dave.

Mayeenul Islam Mayeenul Islam
27 set 2013 17:56:38

@MayeenulIslam, stavo solo cercando di spiegare perché non trovi tali spiegazioni nel Codex. Mi dispiace se sono sembrato impaziente.

Ben Miller Ben Miller
27 set 2013 18:08:41

@BenMiller-RememberMonica, ho percepito anche questo come impazienza, poiché la mia prima impressione è che ciò che suggerisci equivale a chiudere Stack Exchange, dato che quasi tutte le domande poste possono essere trovate nei manuali e qualsiasi domanda specifica può essere dedotta con un po' di pensiero creativo. :-) Comunque, sì, il Codex è uno strumento fantastico, ma in questa domanda è Google che guida il flusso ;)

Yannis Dran Yannis Dran
10 mar 2022 13:38:15

@YannisDran Questo sito (Wordpress.SE) è per domande specifiche su WordPress. Le domande generali sulla programmazione in PHP appartengono a StackOverflow. Il mio commento sul Codex era in risposta alla frase nella domanda dell'OP che si chiedeva perché non riuscisse a trovare la risposta alla domanda nel Codex.

Ben Miller Ben Miller
10 mar 2022 13:43:42

@YannisDran Infine, quando ho scritto le parole "tutte le tue domande", non mi riferivo agli altri post dell'OP; mi riferivo alle molteplici domande in questo post, tutte fuori tema su questo sito e nessuna delle quali avrà risposte nel Codex perché non riguardano WordPress.

Ben Miller Ben Miller
10 mar 2022 13:50:19
Mostra i restanti 2 commenti
Tutte le risposte alla domanda 1
4
14

Questa è più una domanda generale sulla programmazione in PHP e potrebbe essere chiusa per questo motivo. Ma prima che accada, vediamo se riesco a chiarire alcuni di questi punti per te.

Quelle stringhe che iniziano con il segno di percentuale sono in "formato printf". Ad esempio, %2$s si traduce con "sostituisci questo token con il secondo parametro e trattalo come una stringa".

Quando vedi una variabile tra parentesi graffe all'interno di una stringa, come "Oggi è {$day}", è lo stesso che mettere la variabile lì senza parentesi graffe, come "Oggi è $day". Ma formattare la variabile in questo modo la fa risaltare, quindi è più chiaro che c'è una variabile lì. Inoltre impedisce che altri caratteri accanto al nome della variabile vengano interpretati come parte del nome. Senza parentesi graffe, PHP saprebbe cosa fare con "Il nome del tuo robot sarebbe {$firstName}Number5"? Vedrebbe "$firstNameNumber5" e cercherebbe una variabile chiamata $firstNameNumber5 invece di semplicemente $firstName.

Non sono sicuro di cosa tu stia chiedendo nell'ultimo esempio. È __FILE__ che ti confonde? Questa è una Costante Magica di PHP che viene sostituita con il percorso completo del file in cui si trova quel pezzo di codice.

27 set 2013 17:33:22
Commenti

Prima di chiudere solo un'ultima domanda semplice: !Website::. Perché i due punti doppi qui?

Mayeenul Islam Mayeenul Islam
27 set 2013 17:44:23

Il :: ha a che fare con la programmazione orientata agli oggetti -- nel caso di Website::getThemeOption, stai chiamando la funzione getThemeOption che appartiene alla classe Website.

Pat J Pat J
27 set 2013 17:55:23

Inoltre: {$var} aiuta PHP a distinguere tra qualcosa come {$complete_variable_name} e {$prefix}_rest_of_name, per esempio.

Pat J Pat J
27 set 2013 17:57:15

Il doppio due punti viene utilizzato per accedere solo a metodi e proprietà statici o sovrascritti di una classe, mentre per i metodi regolari si utilizza ->, ad esempio: $myObject->someMethod();

ed-ta ed-ta
11 giu 2015 19:56:45