Что такое $ 0 на функциях PHP PCRE - PullRequest
4 голосов
/ 25 марта 2012

Я прочитал документацию по функции preg_filter это выглядит следующим образом. Это с php.net сайта.

$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)); 

Здесь в массиве $ заменить некоторые доступные переменные, как это - $0 Когда я пытаюсь это вернуть значение было доступно до замены. Это общая переменная в PHP или она доступна только для функций PCRE? И я видел $1, $2, $3 ... также в некоторых статьях.

Обычно у нас не может быть переменных, начинающихся с цифр.

Так может ли кто-нибудь объяснить об этой функции и переменной?

Ответы [ 3 ]

6 голосов
/ 25 марта 2012

$0 представляет всю часть строки, которая соответствует шаблону.$1 и т. Д. Представляют подшаблоны.

1 голос
/ 25 марта 2012

Из руководства по PHP на preg_replace - http://php.net/manual/en/function.preg-replace.php:

Каждая такая ссылка будет заменена текстом, захваченным n'th шаблон в скобках. n может быть от 0 до 99, и \ 0 или $ 0 относится к текст соответствует целому шаблону.

1 голос
/ 25 марта 2012

На странице руководства для preg_filter:

preg_filter () идентична preg_replace (), за исключением того, что возвращает только (возможно, преобразованные) объекты, где было совпадение. Подробнее о работе этой функции читайте в документации preg_replace ().

со страницы руководства для preg_replace:

$ 0 относится к тексту, который соответствует всему шаблону.

...