¿Cuál es el significado de% s,% 1 $ s, etc.? [cerrado]

14

De un hilo de preguntas y respuestas, me encontré con algunas cosas viejas, pero me temo que me encontré en una condición que todavía no sé el significado de ellas y no sé por qué usarlas.

  • %1$s - (encontrado para cargar la identificación del widget)
  • %2$s - (encontrado para cargar la clase / clases de widgets)
  • %s- (encontrado aquí )

¿Y cómo funcionan las siguientes cosas? Quiero decir, ¿cuál es la explicación del formato de código?

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

Esta pregunta puede seguir y seguir ... Lo sé. Pero cosas como estas no se explican claramente en ninguna parte. Yo, no solo quiero su significado y propósitos, sino que quiero alguna explicación interna / central para que pueda entender sus motivos y cómo funcionan.

Y también, si tales cosas ya están claramente definidas en el Codex, me encantaría leerlas. Y me encantaría tener una lista de cosas tan curiosas si dicha lista ya está ordenada.

Mayeenul Islam
fuente
3
Todo esto es PHP simple. Ver sprintf().
fuxia
El Codex existe para proporcionar documentación específica de WordPress. No está destinado a enseñar programación PHP, y todas sus preguntas son sobre programación PHP. La documentación de PHP se puede encontrar en php.net , y se pueden encontrar muchos tutoriales para principiantes de PHP usando Google.
Ben Miller - Restablecer Mónica
2
@BenMiller: Sea paciente por favor. Antes del comentario de toscho, ni siquiera soy consciente de la posición de la pregunta. Ahora está casi claro con la respuesta de Dave.
Mayeenul Islam
@ MayeenulIslam, simplemente estaba tratando de explicar por qué no encuentras tales explicaciones en el Codex. Lo siento si me encuentro tan impaciente.
Ben Miller - Restablece a Mónica

Respuestas:

11

Esta es realmente más una pregunta general de programación PHP y podría cerrarse por esa razón. Pero antes de que eso suceda, veamos si no puedo aclarar algo de esto.

Las cadenas que comienzan con signos% están en "formato printf" . Por ejemplo, se %2$straduce como "reemplazar este token con el segundo parámetro y tratarlo como una cadena".

Cuando ves una variable entre llaves dentro de una cadena, como "Today is {$day}", es lo mismo que poner la variable allí sin llaves, como "Today is $day". Pero formatear la variable de esta manera hace que se destaque, por lo que está más claro que hay una variable allí. También evita que otros caracteres al lado del nombre de la variable se interpreten como parte del nombre. Sin llaves, ¿sabría PHP qué hacer "Your robot name would be {$firstName}Number5"? Vería "$firstNameNumber5"y buscaría una variable llamada $ firstNameNumber5 en lugar de simplemente $ firstName.

No estoy seguro de lo que estás preguntando en el último ejemplo. ¿Es por lo __FILE__que estás confundido? Esa es una constante mágica de PHP que se reemplaza con la ruta completa al archivo en el que se encuentra el bit de código.

Dave Ross
fuente
Antes de ser cerrada sólo el último sencillo: !Website::. ¿Por qué el doble colon allí?
Mayeenul Islam
2
El ::tiene que ver con la programación orientada a objetos - en el caso de Website::getThemeOption, que está llamando a la función getThemeOptionque pertenece a la clase Website.
Pat J
2
También: {$var}ayuda a distinguir entre PHP algo parecido {$complete_variable_name}y {$prefix}_rest_of_name, por ejemplo.
Pat J
FIY double colon se usa para acceder solo a métodos estáticos o anulados y propiedades de una clase, con métodos regulares que usa -> eg $ myObject-> someMethod ();
ed-ta