PHP修剪内部功能

I have the following simple PHP script:

<?php

    function generate($test_var, trim($test_var2)) {
        echo $test_var2;
    }

    generate('value 1', ' value2');

?>

It's giving the following error:

PHP Parse error:  syntax error, unexpected '(', expecting '&' or T_VARIABLE 
in ** on line 3

I can't figure out why trim can't be used in this context.

You simply can't call a function inside the argument list of the definition of another function*. Perhaps you meant to do something like this:

function generate($test_var, $test_var2) {
    $test_var2 = trim($test_var2);
    echo $test_var2;
}

* Note that you can use the array language construct when declaring the default value of parameter, although this isn't a function.

Further Reading

Another function is not valid within the list of parameters in a function's definition in PHP. The operative words being within the list of parameters in a function's definition; you can read about the structure of a function here: http://www.php.net/manual/en/functions.arguments.php

Having said that, when invoking a function as mentioned below in the comments by p.s.w.g you can pass a function as an argument in most cases as a callback.

E.g.

Valid:

function foo($bar, $baz) {
   // Do something
}

...
foo('Hello', trim('World '));

Invalid:

function foo($bar, trim($baz)) {
   // Do something
}

...
foo('Hello', 'World ');

Simply put:

PHP supports passing arguments by value (the default), passing by reference, and default argument values. Variable-length argument lists are also supported, see also the function references for func_num_args(), func_get_arg(), and func_get_args() for more information.