# Роутинг с именованными параметрами на PHP

Рассмотрим одно из регулярных выражений, обрабатывающих URL:

`<?php if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) { $page = include 'view/page/show.php'; } ?>`

В данном случае получается, что наш параметр попадает в карман. Затем мы вытаскиваем значение параметра из кармана по его номеру:

`<?php $slug = $params[1]; ?>`

Это на самом деле не очень красиво, особенно если параметров будет несколько. Более удачной идеей будет сделать параметры с именами вместо номеров. Для этого используем именованные карманы в нашей регулярке:

`<?php if (preg_match('#^/page/(?<slug>[a-z0-9_-]+)$#', $url, $params)) { $page = include 'view/page/show.php'; } ?>`

В таком случае мы сможем получить значение параметра по его имени:

`<?php $slug = $params['slug']; ?>`

Переделайте параметры в роутах вашего движка на именованные.

←→
↑