Quelle est la signification de% s,% 1 $ s etc.? [fermé]

14

À partir d'un fil de questions et réponses, je suis venu rencontrer de vieilles choses, mais je crains, je me suis retrouvé dans une condition qui, je ne sais toujours pas leur signification et je ne sais pas pourquoi les utiliser.

  • %1$s - (trouvé pour charger l'identifiant du widget)
  • %2$s - (trouvé pour charger la classe / les classes de 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. Non seulement je veux leur signification et leurs buts, mais je veux une explication intérieure / fondamentale pour que je puisse comprendre leurs motifs et comment ils fonctionnent.

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

Mayeenul Islam
la source
3
C'est tout simplement du PHP. Tu vois sprintf().
fuxia
Le Codex existe pour fournir une documentation spécifique à WordPress. Il n'est pas destiné à enseigner la programmation PHP, et toutes vos questions concernent la programmation PHP. La documentation PHP peut être trouvée sur php.net , et de nombreux tutoriels PHP pour débutants peuvent être trouvés en utilisant Google.
Ben Miller - Reinstate Monica
2
@BenMiller: Soyez patient s'il vous plaît. Avant le commentaire de toscho, je ne connais même pas la position de la question. C'est presque clair maintenant avec la réponse de Dave.
Mayeenul Islam
@ MayeenulIslam, j'essayais simplement d'expliquer pourquoi vous ne trouvez pas de telles explications dans le Codex. Je suis désolé si je suis tombé impatient.
Ben Miller - Reinstate Monica

Réponses:

11

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

Les chaînes commençant par des signes% sont au "format printf" . Par exemple, se %2$straduit par "remplacer ce jeton par le deuxième paramètre et le traiter comme une chaîne".

Lorsque vous voyez une variable entre accolades à l'intérieur d'une chaîne, comme "Today is {$day}", c'est la même chose que d'y placer la variable sans accolades, comme "Today is $day". Mais le formatage de la variable comme ceci le fait ressortir, il est donc plus clair qu'il y a une variable là-bas. Il empêche également d'autres caractères à côté du nom de variable d'être interprétés comme faisant partie du nom. Sans accolades, PHP saurait-il quoi faire "Your robot name would be {$firstName}Number5"? Il verrait "$firstNameNumber5"et chercherait une variable nommée $ firstNameNumber5 au lieu de simplement $ firstName.

Je ne sais pas de quoi vous parlez dans le dernier exemple. Est-ce que __FILE__vous êtes confus? C'est une constante magique PHP qui est remplacée par le chemin d'accès complet au fichier dans lequel se trouve le bit de code.

Dave Ross
la source
Avant de fermer juste le dernier simple: !Website::. Pourquoi le double colon?
Mayeenul Islam
2
Cela ::a à voir avec la programmation orientée objet - dans le cas de Website::getThemeOption, vous appelez la fonction getThemeOptionappartenant à la classe Website.
Pat J
2
Aussi: {$var}aide PHP à distinguer quelque chose comme {$complete_variable_name}et {$prefix}_rest_of_name, par exemple.
Pat J
FIY double colon est utilisé pour accéder uniquement aux méthodes et propriétés statiques ou remplacées d'une classe, avec des méthodes régulières que vous utilisez -> par exemple $ myObject-> someMethod ();
ed-ta