so suppose I have a function:

```
function j($a, $b){
 return $a + $b;
}

```

and then I put the intended arguments of the function into a string:

```
$str = '1,3';

```

is there a way to make the function treat the single string argument as if it were the arguments that the programmer inserted into the function....so when you do

`j($str)`,

instead of having the function treat the $str as a single string argument, it fetches the content of the string and treats it as if the programmer wrote `j(1,3)` instead of `j($str)`

also this is a rather simple example, but I'd like it to work for even more complicated argument strings involving arrays, multidimensional arrays, associative arrays, array within arrays, as well as string arguments that have commas in it (so just exploding by comma is not really feasible)

also I'd rather not use eval() in the solution

EDIT
----

Also I'm trying to get this to work on any function not just mine (and not just this specific function which is just a worthless example function) so preferably the operation is to be done outside of the function