web-dev-qa-db-fra.com

Quelle est la signification de% s,% 1 $ s etc.?

D'un fil de questions/réponses, je suis venu rencontrer d'anciennes choses, mais j'ai peur, je me suis trouvé dans un état tel que je ne sais toujours pas ce que cela signifie et que je ne sache pas pourquoi les utiliser.

  • %1$s - (trouvé pour charger l'identifiant du widget)
  • %2$s - (trouvé pour charger la classe/les classes du widget)
  • %s - (trouvé ici )

Et comment fonctionnent les choses suivantes? Je veux dire quelle est l'explication du format de code?

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

Cette question peut continuer encore et encore ..., je sais. Mais des choses comme celles-ci ne sont clairement expliquées nulle part. Je ne veux pas seulement leur signification et leurs buts, mais je veux une explication intérieure/fondamentale afin de pouvoir comprendre leurs motivations et leur fonctionnement.

Et aussi, si de telles choses sont déjà clairement définies dans le Codex, j'aimerais les lire. Et j'aimerais bien avoir une liste de telles choses curieuses si une telle liste est déjà triée.

12
Mayeenul Islam

C’est vraiment une question de programmation générale PHP et elle pourrait être fermée pour cette raison. Mais avant que cela se produise, voyons si je ne peux pas vous en dire plus.

Les chaînes qui commencent par les signes% sont au format "format printf" . Par exemple, %2$s se traduit par "remplace ce jeton par le deuxième paramètre et traite-le comme une chaîne".

Lorsque vous voyez une variable entre accolades dans une chaîne, telle que "Today is {$day}", vous pouvez y insérer la variable sans accolades, telle que "Today is $day". Mais la mise en forme de la variable comme celle-ci la distingue des autres, de sorte qu'il est plus clair qu'il existe une variable. Cela empêche également que d'autres caractères à côté du nom de la variable soient interprétés comme faisant partie du nom. Sans accolades, PHP saurait-il quoi faire avec "Your robot name would be {$firstName}Number5"? Il verrait "$firstNameNumber5" et rechercherait une variable nommée $ firstNameNumber5 au lieu de simplement $ firstName.

Je ne suis pas sûr de ce que vous demandez dans le dernier exemple. Est-ce le __FILE__ par lequel vous êtes confus? C'est un PHP Magic Constant qui est remplacé par le chemin d'accès complet au fichier dans lequel se trouve le morceau de code.

11
Dave Ross