PHP:在将变量名称传递给函数时是否需要更改变量名称?

I have a body function and a function called within the first one.

As can be seen below I don't change the parameters name while using in the second function.

Is it necessary to change the params names for use inside _display_bar();? What are the side effects if I don't?

    function main_func($form, &$form_state, $key, $code) {
    $output = '';
    ...
    $output .= _display_navbar($trans, $status_names);

    return $output
    }

    function _display_navbar($trans, $status_names) {
     $trans = 'bla';
     $status_names = 'another bla';
   $bar = $trans . ':' .$status_names;
     return $bar;
    };

It actually does not matter. But you better should not have the same names - it is confusing. Let me give you an example. $s will have 3 after the first function call to sum; 7 after the second function call to sum. The parameters did not have the same name as the function parameter names.

To answer your question fully - there are absolutely no side effects.

function main()
{
    $a = 1;
    $b = 2;
    $s = sum($a, $b);

    $d = 3;
    $e = 4;
    $s = sum($d, $e);
}

function sum($first, $second) 
{
    $ret = $first + $second;
    return $ret;
}

Variables have function scope. Unless you specifically declare otherwise, the names are only valid inside the function. They do not bleed into other scopes. There are no side effects. You don't need to use unique names.

Once a variable is passed to a function, the name of the variable is not important. Only the data is passed through. So your function could be this:

function _display_navbar($foo, $bar) {
   $foo = 'bla';
   return $bar;
}

And it will return what ever was passed as the second parameter regardless of what the variable name was.

The names you pass as function arguments must be in scope at the point they are called.

It doesn't matter if they have the same name as the formal function parameters, but you must recognise that just because they have the same name doesn't mean that brings them into scope.

So, in your code:

function main_func($form, &$form_state, $key, $code) {
    $output = '';
    ...
    $output .= _display_navbar($trans, $status_names);

the last line will be incorrect, unless $trans and $status_names are in scope at the time.