我尝试了很多方法来解决这个问题,但没有一个有效。
假设我有一堂课:
class MyTestClass{
    function testPrint($a = '', $b = '', $c = '') 
    {
        echo '1: ' . $a . ', 2: ' . $b . ', 3: ' . $c;        
    }
}
如果我使用这个 url 访问这个函数,
http://localhost/ci/index.php/myTestClass/testPrint/a/b/c你会看到1: a, 2: b, 3: c输出,这很好。
但是如果我将 $b 分配给一个空字符串,则 url 将更改为http://localhost/ci/index.php/myTestClass/testPrint/a//c
输出将更改为1: a, 2: c, 3:似乎 CI 忽略了缺少的参数。
问题是如何防止CI忽略uri中间的缺失参数?
我现在的预期输出是 url1: a, 2: , 3: c
顺便说一句,我试图用来$this->uri->segment(n)保护参数位置,但它不起作用。
我尝试通过添加以下内容来更新 routes.php:
$route['myTestClass/(:any)/(:any)/(:any)/(:any)'] = "myTestClass/$1/$2/$3/$4";但这并没有改变任何东西。
任何的想法?