Php 为Slim中的管线参数指定默认值

Php 为Slim中的管线参数指定默认值,php,routes,slim,Php,Routes,Slim,比方说,我有 $app->get('/hello/:name', function($name){ echo 'Hello' . $name; }); $name是否可能有默认值,因此如果我只是转到 http://myurl.com/hello *如果没有第二段,它将输出 你好,默认值 如果是,怎么做?如何为Slim中的route参数指定默认值 我知道有,但我不确定是否使用它,因为它仍然是实验性的 谢谢。您只需使用默认参数即可 $app->get('/hello/:name'

比方说,我有

$app->get('/hello/:name', function($name){
  echo 'Hello' . $name;
});
$name是否可能有默认值,因此如果我只是转到

http://myurl.com/hello
*如果没有第二段,它将输出

你好,默认值

如果是,怎么做?如何为Slim中的route参数指定默认值

我知道有,但我不确定是否使用它,因为它仍然是实验性的

谢谢。

您只需使用默认参数即可

$app->get('/hello/:name', function($name){
  if (empty($name)){
    $name='default';
  }
  echo 'Hello' . $name;
});
您可以简单地使用默认参数


试试这个,我已经测试过了。我工作得很好

<?php
require 'vendor/autoload.php';
$app = new \Slim\Slim();
$app->get('/hello(/:name)', function ($name = 'default') {
    echo "Hello, $name";
});
$app->run();
不能这样访问:

http://slim.test.com/hello
http://slim.test.com/hello/srain
http://slim.test.com/hello/
更新:如果你想让他们都可以访问:
试试这个,我已经测试过了。我工作得很好

<?php
require 'vendor/autoload.php';
$app = new \Slim\Slim();
$app->get('/hello(/:name)', function ($name = 'default') {
    echo "Hello, $name";
});
$app->run();
不能这样访问:

http://slim.test.com/hello
http://slim.test.com/hello/srain
http://slim.test.com/hello/
更新:如果你想让他们都可以访问:
我遇到了一个类似的问题,我必须处理请求中的一个可选参数。试试这个,我自己也试过了

$app->get('/hello(/:name)',function($name="default"){
  echo 'Hello' . $name;
});

我遇到了一个类似的问题,我必须处理请求中的一个可选参数。试试这个,我自己也试过了

$app->get('/hello(/:name)',function($name="default"){
  echo 'Hello' . $name;
});
应该使用此路由器:/hello/:name,它们不相同。应该使用此路由器:/hello/:name,它们不相同。