추천: "PHP 비디오 튜토리얼"
preg_replace_callback
이 함수의 기능은 정규식 검색을 수행하고 교체를 위해 콜백을 사용하는 것입니다
preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed
매개변수 설명
pattern
받는 사람 검색 문자열 또는 문자열 배열일 수 있는 패턴입니다.
callback
교체가 필요할 때마다 호출되는 콜백 함수 호출 시 함수에서 얻은 매개변수는 주제와 일치하는 결과입니다. 콜백 함수는 실제로 대체에 참여하는 문자열을 반환합니다. 이것은 콜백 함수의 서명입니다:
handler ( array $matches ) : string
종종 콜백 함수가 필요하며 preg_replace_callback()이라는 한 곳에서만 사용됩니다. 이 경우 익명 함수를 사용하여 preg_replace_callback() 호출 시 익명 함수를 콜백으로 정의할 수 있습니다. 이렇게 하면 모든 호출 정보를 동일한 위치에 유지하고 다른 곳에서는 사용되지 않는 콜백 함수 이름으로 함수 네임스페이스를 오염시키지 않습니다.
예제 #1 preg_replace_callback() 및 익명 함수
<?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
검색하고 바꿀 대상 문자열 또는 문자열 배열입니다.
limit
패턴당 각 주제 문자열에 사용할 수 있는 최대 대체 수입니다. 기본값은 -1(제한 없음)입니다.
count
지정된 경우 이 변수는 교체가 수행된 횟수로 채워집니다.
매개변수 전달 방법
기본적으로 이 콜백 함수는 일치하는 매개변수 $matches만 수신합니다. 더 많은 매개변수를 전달하려면 우회 전술을 사용할 수 있습니다. 익명 함수에 전달되어야 하는 매개변수에 액세스할 수만 있으면 됩니다. 따라서 우리에게는 두 가지 옵션이 있습니다.
1. 전역 변수 사용
$param1 = "test"; preg_replace_callback($pregRule, function ($match) { global $param1; return $match[1] . $param1 . $match[3]; }
2. 객체 지향 로딩 클래스 사용
class Scrapy{ private $param1 = "test"; public function info(){ preg_replace_callback($pregRule, function ($match) { return $match[1] . $this->param1 . $match[3]; } } }
위의 두 가지 방법을 통해 콜백 함수에 전달하려는 매개 변수를 호출할 수 있습니다.
요약
해결할 수 없는 문제에 직면했을 때, 생각을 바꾸면 밝은 미래가 있을 수도 있습니다.
위 내용은 php preg_replace_callback 콜백 함수의 매개변수 전달 문제에 대해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!