2012-03-25 7 views
3

Ich lese eine Dokumentation der preg_filter Funktion ist es wie folgt aussehen. Dies ist from php.net Website.

$subject = array('1', 'a', '2', 'b', '3', 'A', 'B', '4'); 
$pattern = array('/\d/', '/[a-z]/', '/[1a]/'); 
$replace = array('A:$0', 'B:$0', 'C:$0'); 

print_r(preg_filter($pattern, $replace, $subject)); 

Hier in der Anordnung von $ einiger Variablen wie diese verfügbar ersetzen - $0 Wenn ich das versuche, es wird der Wert, bevor ersetzt verfügbar war zurück. Ist es eine allgemeine Variable in PHP oder ist es nur für PCRE-Funktionen verfügbar? Und ich sah $1, $2, $3 ... auch in einigen Artikeln.

Normalerweise können wir keine Variablen haben, die mit Zahlen beginnen.

Also kann jemand über diese Funktion und Variable erklären?

+0

'A: $ 0' liegt zwischen einfachen Anführungszeichen, es wird sowieso nicht als Variable interpretiert. – haltabush

Antwort

5

$0 repräsentiert den gesamten Teil des Strings, der dem Muster entspricht. $1 usw. repräsentieren die Untermuster.

+0

können Sie mir bitte eine Probe für Sub-Muster geben, um $ 1 Wert zu sehen. – sugunan

+0

Beispiel: 'preg_match ("/abc (def) ghi/"," 012abcdefghi345 ", $ m); var_dump ($ m)); '. Die Indizes des $ m-Arrays können als Ersatz für $ 0 und $ 1 verwendet werden. –

+0

Ich habe das. Danke für die Anleitung. – sugunan

1

Vom manual page for preg_filter:

preg_filter() identisch ist(), um preg_replace außer es nur die (möglicherweise transformiert) Themen gibt, wo es ein Spiel war. Weitere Informationen zur Funktionsweise dieser Funktion finden Sie in der Dokumentation zu preg_replace().

Vom manual page for preg_replace:

$ 0 bezieht sich auf den Text durch das ganze Muster abgestimmt.