Bezüglich des Parameterübergabeproblems der PHP-Rückruffunktion preg_replace_callback

藏色散人
Freigeben: 2023-04-09 17:00:02
nach vorne
4561 Leute haben es durchsucht

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
Nach dem Login kopieren

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&#39;t read stdin");
while (!feof($fp)) {
    $line = fgets($fp);
    $line = preg_replace_callback(
        &#39;|<p>\s*\w|&#39;,
        function ($matches) {
            return strtolower($matches[0]);
        },
        $line
    );
    echo $line;
}
fclose($fp);
?>
Nach dem Login kopieren
  • 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];
}
Nach dem Login kopieren

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];
        }
   }
}
Nach dem Login kopieren

Ü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!

Verwandte Etiketten:
php
Quelle:80shihua.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!