在Codeigniter中,URI中的参数会自动提供给被调用的方法。
例如:
网址中的 /admin/edit/news/1
意味着在admin
控制器中,您可以执行以下操作:
function edit($table,$id)
{
echo $table; // outputs 'news'
echo $id; // outputs '1'
}
因此,从本质上讲,您可以在方法中命名和使用参数,而无需事先将它们传递给'按顺序在任何地方,无论有多少,它们仍然按照它们在URI中出现的顺序传递给函数。
我想这必须与__call()
魔术方法有关,但我无法理解如何将它们传递给被调用的方法,就好像它们是单独的参数而不是$args
方法收到的__call()
数组。
这是如何实现的?
答案 0 :(得分:1)
你可以在system/core/CodeIgniter.php
文件上看到关于这个魔法的inteire逻辑。
您可以看到它是如何实例化该类的 https://github.com/bcit-ci/CodeIgniter/blob/develop/system/core/CodeIgniter.php#L500
而且,我突出显示了使用参数调用方法的行。
https://github.com/bcit-ci/CodeIgniter/blob/develop/system/core/CodeIgniter.php#L514
[]' S