arrays - Unexpected behaviour in PHP Altorouter when passing parameters -


setup

i'm accessing url: <host>/render/z63034/rblr/glzb.

my url pattern such: /render/[a:title]/[a:bpfrom]/[a:bpto].

my route gets added so:

$router->map("get", "/render/[a:title]/[a:bpfrom]/[a:bpto]", function ($params) { include __dir__ . "/views/render.php"; }, "render"); 

the call looks this:

call_user_func_array($match['target'], $match['params']); 

in index.php(where requests routed to) var_dump() of $match['params'] yields expected:

array(3) {   ["title"]=>   string(6) "z63034"   ["bpfrom"]=>   string(4) "rblr"   ["bpto"]=>   string(4) "glzb" } 

in render.php (which included) var_dump() of $params yields unexpected

string(6) "z63034" 

question

why first element in array i'm passing call_user_func_array passed (not array, value itself)?

notice call_user_func_arraypasses $params single parameters, mean, in function definition, have declare parameters $params array has.

for example if call this:

$params = array('hello', 'world'); call_user_func_array(array($this,'test'), $params); 

and function definition looks that

 function test($a){         echo $a;          echo $b;          echo '<br>';     } 

you print 'hello', have declare function this

function test($a, $b){         echo $a;          echo $b;          echo '<br>';     } 

hope helps


Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -