À 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.
sprintf()
.Réponses:
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$s
traduit 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.la source
!Website::
. Pourquoi le double colon?::
a à voir avec la programmation orientée objet - dans le cas deWebsite::getThemeOption
, vous appelez la fonctiongetThemeOption
appartenant à la classeWebsite
.{$var}
aide PHP à distinguer quelque chose comme{$complete_variable_name}
et{$prefix}_rest_of_name
, par exemple.