Was bedeuten% s,% 1 $ s usw.? [geschlossen]

14

Aus einem Q & A-Thread bin ich auf ein paar alte Dinge gestoßen, aber ich fürchte, ich befand mich in einem Zustand, in dem ich die Bedeutung der Dinge immer noch nicht kenne und nicht weiß, warum ich sie verwenden soll.

  • %1$s - (Widget-ID wurde geladen)
  • %2$s - (Widget Klasse / Klassen laden)
  • %s- ( hier gefunden )

Und wie funktionieren die folgenden Dinge? Ich meine, wie erklärt sich das Code-Format?

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

Diese Frage kann weiter und weiter gehen ..., ich weiß. Aber solche Dinge werden nirgends klar erklärt. Ich möchte nicht nur ihre Bedeutung und ihren Zweck, sondern auch eine innere / grundlegende Erklärung, damit ich ihre Motive und ihre Funktionsweise verstehen kann.

Und wenn solche Dinge im Codex bereits klar definiert sind, würde ich sie gerne lesen. Und hätte gerne eine Liste mit solchen kuriosen Dingen, wenn eine solche Liste bereits aussortiert ist.

Mayeenul Islam
quelle
3
Das ist alles einfaches PHP. Sehen sprintf().
Fuxia
Der Codex dient zur Bereitstellung von WordPress-spezifischer Dokumentation. Es ist nicht dazu gedacht, PHP-Programmierung zu lehren, und alle Ihre Fragen beziehen sich auf PHP-Programmierung. PHP-Dokumentation finden Sie auf php.net , und viele Tutorials für PHP-Anfänger können über Google gefunden werden.
Ben Miller - Reinstate Monica
2
@BenMiller: Hab bitte etwas Geduld. Vor dem Kommentar von toscho ist mir sogar die Position der Frage unbekannt. Mit Daves Antwort ist es jetzt fast klar.
Mayeenul Islam
@ MayeenulIslam, ich habe nur versucht zu erklären, warum Sie solche Erklärungen nicht im Codex finden. Es tut mir leid, wenn ich ungeduldig rüberkam.
Ben Miller - Reinstate Monica

Antworten:

11

Dies ist wirklich eher eine allgemeine PHP-Programmierfrage und könnte aus diesem Grund geschlossen werden. Aber bevor das passiert, wollen wir mal sehen, ob ich einiges davon nicht für Sie aufklären kann.

Diejenigen Zeichenfolgen, die mit% -Zeichen beginnen, sind im "printf-Format" . %2$sDies bedeutet beispielsweise, dass dieses Token durch den zweiten Parameter ersetzt und wie eine Zeichenfolge behandelt wird.

Wenn Sie eine Variable in geschweiften Klammern in einer Zeichenfolge sehen, entspricht dies "Today is {$day}"dem Platzieren der Variablen dort ohne geschweifte Klammern "Today is $day". Wenn Sie die Variable jedoch so formatieren, fällt sie auf, sodass klarer wird, dass es dort eine Variable gibt. Außerdem wird verhindert, dass andere Zeichen neben dem Variablennamen als Teil des Namens interpretiert werden. Wüsste PHP ohne geschweifte Klammern, was zu tun ist "Your robot name would be {$firstName}Number5"? Es würde "$firstNameNumber5"eine Variable mit dem Namen $ firstNameNumber5 anstelle von einfach $ firstName sehen und suchen.

Ich bin nicht sicher, wonach Sie im letzten Beispiel fragen. Ist es das __FILE__, von dem du verwirrt bist? Das ist eine PHP Magic Constant , die durch den vollständigen Pfad zu der Datei ersetzt wird, in der sich das Code-Bit befindet.

Dave Ross
quelle
Bevor sie gerade die letzten einfachen geschlossen: !Website::. Warum dort der doppelte Doppelpunkt?
Mayeenul Islam
2
Das ::hat mit objektorientierter Programmierung zu tun - im Fall von Website::getThemeOptionrufen Sie die getThemeOptionzur Klasse gehörende Funktion auf Website.
Pat J
2
Außerdem: {$var}Hilft PHP , beispielsweise zwischen etwas {$complete_variable_name}und zu {$prefix}_rest_of_nameunterscheiden.
Pat J
FIY-Doppelpunkt wird verwendet, um nur auf statische oder überschriebene Methoden und Eigenschaften einer Klasse zuzugreifen, mit regulären Methoden, die Sie verwenden -> zB $ myObject-> someMethod ();
ed-ta