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


14

Da un thread di domande e risposte sono venuto a conoscenza di alcune cose vecchie, ma temo di essermi trovato in una condizione che, ancora non conosco il loro significato e non so perché usarli.

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

E come funzionano le seguenti cose? Voglio dire qual è 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 )

Questa domanda può continuare all'infinito ... Lo so. Ma cose come queste non sono spiegate chiaramente da nessuna parte. Non voglio solo il loro significato e i loro scopi, ma voglio una spiegazione interiore / centrale in modo che io possa capire i loro motivi e come funzionano.

Inoltre, se tali cose sono già chiaramente definite nel Codice, mi piacerebbe leggerle. E mi piacerebbe avere un elenco di cose così curiose se tale elenco è già risolto.


3
Questo è tutto semplice PHP. Vedere sprintf().
fuxia

Il codice esiste per fornire documentazione specifica per WordPress. Non ha lo scopo di insegnare la programmazione PHP e tutte le tue domande riguardano la programmazione PHP. La documentazione di PHP può essere trovata su php.net e molti tutorial di PHP per principianti possono essere trovati usando Google.
Ben Miller - Ripristina Monica il

2
@BenMiller: sii paziente per favore. Prima del commento di Toscho, non sono nemmeno a conoscenza della posizione della domanda. Ora è quasi chiaro con la risposta di Dave.
Mayeenul Islam,

@MayeenulIslam, stavo semplicemente cercando di spiegare perché non trovi tali spiegazioni nel Codice. Mi dispiace se mi sono trovato impaziente.
Ben Miller - Ripristina Monica il

Risposte:


11

Questa è davvero una domanda di programmazione PHP generale e potrebbe essere chiusa per questo motivo. Ma prima che ciò accada, vediamo se non riesco a chiarire un po 'di questo per te.

Le stringhe che iniziano con i segni% sono in "formato printf" . Ad esempio, si %2$straduce in "sostituisci questo token con il secondo parametro e trattalo come una stringa".

Quando vedi una variabile tra parentesi graffe all'interno di una stringa, "Today is {$day}"è come mettere la variabile lì senza parentesi graffe, come "Today is $day". Ma la formattazione della 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 "Your robot name would be {$firstName}Number5"? Vedrebbe "$firstNameNumber5"e cercherebbe una variabile chiamata $ firstNameNumber5 anziché semplicemente $ firstName.

Non sono sicuro di cosa stai chiedendo nell'ultimo esempio. E 'la __FILE__siete confusi da? Questa è una costante magica PHP che viene sostituita con il percorso completo del file in cui si trova il bit di codice.


Prima di essere chiusa solo l'ultimo semplice: !Website::. Perché il doppio colon lì?
Mayeenul Islam,

2
L' ::ha a che fare con la programmazione orientata agli oggetti - nel caso di Website::getThemeOption, che si sta chiamando la funzione getThemeOptionappartenente alla classe Website.
Pat J,

2
Inoltre: {$var}aiuta PHP a distinguere tra qualcosa di simile {$complete_variable_name}e {$prefix}_rest_of_name, ad esempio.
Pat J,

I due punti FIY vengono usati per accedere solo a metodi e proprietà statici o sovrascritti di una classe, con metodi regolari che usi -> ad esempio $ myObject-> someMethod ();
ed-ta,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.