Penghalaan dengan Parameter Bernama dalam PHP
Pertimbangkan salah satu ungkapan nalar yang kerap, yang memproses URL:
<?php
if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
Dalam kes ini, parameter kita masuk ke dalam 'pocket'. Kemudian kita mengeluarkan nilai parameter dari 'pocket' mengikut nombornya:
<?php
$slug = $params[1];
?>
Ini sebenarnya tidak begitu cantik, terutamanya jika terdapat beberapa parameter. Idea yang lebih baik adalah untuk membuat parameter dengan nama menggantikan nombor. Untuk ini, gunakan 'pocket' bernama dalam ungkapan nalar kerap kita:
<?php
if (preg_match('#^/page/(?<slug>[a-z0-9_-]+)$#', $url, $params)) {
$page = include 'view/page/show.php';
}
?>
Dalam kes ini, kita boleh mendapatkan nilai parameter mengikut namanya:
<?php
$slug = $params['slug'];
?>
Ubah suai parameter dalam laluan ('routes') enjin anda kepada parameter bernama.