Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:将变量名传递给函数时是否需要更改它们?_Php_Variables_Parameters - Fatal编程技术网

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

PHP:将变量名传递给函数时是否需要更改它们?,php,variables,parameters,Php,Variables,Parameters,我有一个body函数和一个在第一个函数中调用的函数 如下所示,在第二个函数中使用时,我不会更改参数名称 是否需要更改参数名称以在_display_bar()内使用;?如果我不这样做,会有什么副作用 function main_func($form, &$form_state, $key, $code) { $output = ''; ... $output .= _display_navbar($trans, $status_names); re

我有一个body函数和一个在第一个函数中调用的函数

如下所示,在第二个函数中使用时,我不会更改参数名称

是否需要更改参数名称以在_display_bar()内使用;?如果我不这样做,会有什么副作用

    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;
    };

变量具有函数作用域。除非特别声明,否则名称仅在函数内部有效。它们不会流入其他范围。没有副作用。您不需要使用唯一的名称

变量具有函数作用域。除非特别声明,否则名称仅在函数内部有效。它们不会流入其他范围。没有副作用。您不需要使用唯一的名称

一旦变量被传递给函数,变量的名称就不重要了。只传递数据。因此,您的功能可以是:

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

无论变量名是什么,它都将返回作为第二个参数传递的内容。

一旦变量传递给函数,变量名就不重要了。只传递数据。因此,您的功能可以是:

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

无论变量名是什么,它都将返回曾经作为第二个参数传递的名称。

作为函数参数传递的名称在调用时必须在范围内

它们是否与形式函数参数同名并不重要,但您必须认识到,仅仅因为它们具有相同的名称并不意味着将它们纳入范围

因此,在您的代码中:

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

最后一行将不正确,除非
$trans
$status\u名称当时在作用域中。

作为函数参数传递的名称必须在调用时在作用域中

它们是否与形式函数参数同名并不重要,但您必须认识到,仅仅因为它们具有相同的名称并不意味着将它们纳入范围

因此,在您的代码中:

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

最后一行将不正确,除非
$trans
$status\u名称当时在范围内。

这实际上并不重要。但是你最好不要有相同的名字——这很令人困惑。让我给你举个例子$在第一次函数调用sum后,s将有3个;7第二次函数调用后求和。这些参数的名称与函数参数的名称不同

完全回答你的问题-绝对没有副作用

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;
}

其实没关系。但是你最好不要有相同的名字——这很令人困惑。让我给你举个例子$在第一次函数调用sum后,s将有3个;7第二次函数调用后求和。这些参数的名称与函数参数的名称不同

完全回答你的问题-绝对没有副作用

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;
}

不,它不是:不,它不是:我不会说它令人困惑,它完全可以预期,有时传递给函数的参数可能与形式参数具有相同的名称。变量名毕竟应该是有意义的!我不会说这很混乱,我们完全可以预料,有时传递给函数的参数可能与形式参数具有相同的名称。变量名毕竟应该是有意义的!