Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何正确使用细长路线条件?_Php_Regex_Routes_Conditional Statements_Slim - Fatal编程技术网

Php 如何正确使用细长路线条件?

Php 如何正确使用细长路线条件?,php,regex,routes,conditional-statements,slim,Php,Regex,Routes,Conditional Statements,Slim,我使用php Slim route,如何使if参数usernameequalaccount然后直接到second 一, 二, 我不确定您是否需要为此使用条件。您可以更改文件的顺序以实现相同的效果。因此,首先声明“account”路由,然后在它下面用变量声明您的路由 $app->get('/account', function() use () { echo 'account'; }); $app->get('/:username', function($username) us

我使用php Slim route,如何使if参数
username
equal
account
然后直接到second

一,

二,


我不确定您是否需要为此使用条件。您可以更改文件的顺序以实现相同的效果。因此,首先声明“account”路由,然后在它下面用变量声明您的路由

$app->get('/account', function() use () {
  echo 'account';
});

$app->get('/:username', function($username) use () {
  echo 'user';
})
如果无法更改路线的顺序,您可以使用以下方法:

$app->get('/:username', function($username) use ($app) {
  if($username === 'account') {
    $app->redirect('/account');
  }
  echo 'user';
});

$app->get('/account', function() use () {
  echo 'account';
});

谢谢它起作用了!!但我仍然想知道为什么我的路由条件正则表达式不起作用?
$app->get('/account', function() use () {
  echo 'account';
});

$app->get('/:username', function($username) use () {
  echo 'user';
})
$app->get('/:username', function($username) use ($app) {
  if($username === 'account') {
    $app->redirect('/account');
  }
  echo 'user';
});

$app->get('/account', function() use () {
  echo 'account';
});