Heim > Artikel > Backend-Entwicklung > Bezüglich des Parameterübergabeproblems der PHP-Rückruffunktion preg_replace_callback
Empfohlen: „PHP-Video-Tutorial“
preg_replace_callback
Die Funktion dieser Funktion besteht darin, eine reguläre Ausdruckssuche durchzuführen und einen Rückruf zum Ersetzen zu verwenden
preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed
Parameter. Beschreibung
Muster
An Suche Das Muster, das eine Zeichenfolge oder ein Array von Zeichenfolgen sein kann.
Rückruf
Eine Rückruffunktion, die jedes Mal aufgerufen wird, wenn eine Ersetzung erforderlich ist. Die von der Funktion beim Aufruf erhaltenen Parameter sind die mit dem Betreff abgeglichenen Ergebnisse. Die Callback-Funktion gibt die Zeichenfolge zurück, die tatsächlich an der Ersetzung beteiligt ist. Dies ist die Signatur der Callback-Funktion:
handler ( array $matches ) : string
Oft wird die Callback-Funktion benötigt und nur an einer Stelle namens preg_replace_callback() verwendet. In diesem Fall können Sie die anonyme Funktion verwenden, um eine anonyme Funktion als Rückruf zu definieren, wenn preg_replace_callback() aufgerufen wird. Auf diese Weise behalten Sie alle Aufrufinformationen am selben Ort und verunreinigen den Funktionsnamensraum nicht mit einem Rückruffunktionsnamen, der nirgendwo anders verwendet wird.
Beispiel Nr. 1 preg_replace_callback() und anonyme Funktion
<?php /* 一个unix样式的命令行过滤器,用于将段落开始部分的大写字母转换为小写。 */ $fp = fopen("php://stdin", "r") or die("can't read stdin"); while (!feof($fp)) { $line = fgets($fp); $line = preg_replace_callback( '|<p>\s*\w|', function ($matches) { return strtolower($matches[0]); }, $line ); echo $line; } fclose($fp); ?>
subject
Der Zielstring oder das String-Array zum Suchen und Ersetzen.
Limit
Die maximale Anzahl von Ersetzungen, die für jede Betreffzeichenfolge pro Muster verwendet werden können. Der Standardwert ist -1 (keine Begrenzung).
count
Wenn angegeben, wird diese Variable mit der Anzahl der durchgeführten Ersetzungen gefüllt.
So übergeben Sie Parameter
Standardmäßig erhält diese Rückruffunktion nur den passenden Parameter $matches. Wenn wir mehr Parameter übergeben möchten, können wir die Kreisverkehrtaktik verwenden. Wir müssen lediglich auf die Parameter zugreifen können, die in der anonymen Funktion übergeben werden müssen. Wir haben also zwei Möglichkeiten.
1. Verwenden Sie globale Variablen
$param1 = "test"; preg_replace_callback($pregRule, function ($match) { global $param1; return $match[1] . $param1 . $match[3]; }
2. Verwenden Sie objektorientierte Ladeklassen
class Scrapy{ private $param1 = "test"; public function info(){ preg_replace_callback($pregRule, function ($match) { return $match[1] . $this->param1 . $match[3]; } } }
Über die beiden oben genannten Methoden können wir die Parameter aufrufen, die wir in der Rückruffunktion übergeben möchten.
Zusammenfassung
Es gibt immer mehr Lösungen als Probleme. Wenn Sie auf ein Problem stoßen, das nicht gelöst werden kann, und Sie Ihre Denkweise ändern, haben Sie möglicherweise eine glänzende Zukunft.
Das obige ist der detaillierte Inhalt vonBezüglich des Parameterübergabeproblems der PHP-Rückruffunktion preg_replace_callback. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!