【问题标题】:PHP Trim inside functionPHP Trim 内部函数
【发布时间】:2014-04-14 07:28:14
【问题描述】:

我有以下简单的 PHP 脚本:

<?php

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

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

?>

它给出了以下错误:

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

我不明白为什么不能在这种情况下使用 trim。

【问题讨论】:

    标签: php function syntax syntax-error


    【解决方案1】:

    您根本无法调用另一个函数定义的参数列表中的函数*。也许你打算做这样的事情:

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

    * 请注意,您可以在声明参数的默认值时使用array 语言结构,尽管这不是函数。

    进一步阅读

    【讨论】:

      【解决方案2】:

      另一个函数在 PHP 中的函数定义中的参数列表中无效。操作词在函数定义的参数列表中;您可以在此处阅读有关函数结构的信息:http://www.php.net/manual/en/functions.arguments.php

      话虽如此,当p.s.w.g 在 cmets 中调用下面提到的函数时,在大多数情况下,您可以将函数作为参数传递为 callback

      例如

      有效:

      function foo($bar, $baz) {
         // Do something
      }
      
      ...
      foo('Hello', trim('World '));
      

      无效:

      function foo($bar, trim($baz)) {
         // Do something
      }
      
      ...
      foo('Hello', 'World ');
      

      简单地说:

      PHP 支持按值传递参数(默认)、按引用传递和默认参数值。还支持可变长度参数列表,有关详细信息,另请参阅 func_num_args()、func_get_arg() 和 func_get_args() 的函数参考。

      【讨论】:

      • 我认为这个答案的语言可能会让一些读者感到困惑。您可以将一个函数作为参数传递给另一个函数(请参阅callbacks),但不能在参数列表中调用该函数。
      • 公平,尽管我认为“在函数的定义中”澄清了这一点。我会重新措辞以减少混乱。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 2014-03-02
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 2021-06-24
      相关资源
      最近更新 更多