【问题标题】:Assigning a function to the variable without calling this function将函数分配给变量而不调用此函数
【发布时间】:2015-02-06 10:52:41
【问题描述】:

我想将函数分配给变量,而不是在将其分配给变量时调用此函数。

function abc(){
  echo 'abc';
}

在 PHP 中

$variable=abc();

然后用函数回显变量

echo $variable;

编辑*

因为我想要这样的变量

 $variable = $something[0].$function.$something[1];

【问题讨论】:

  • 如果您不想调用它,请不要调用它。 $variable = function () { echo('abc'); }; 但是,你不能 echo($variable); 因为 PHP 只知道如何 echo 字符串,它不知道如何将函数转换为字符串(它没有任何意义)。
  • 问题是我想在变量中获得函数的值并稍后调用它,而不是在我将它分配给变量时。

标签: php function variables


【解决方案1】:

这样做

$variable=function(){
  echo 'abc';
};
$variable();

function abc(){
echo 'abc';
}
$variable="abc";
 $variable();

【讨论】:

    【解决方案2】:

    试试这个:

    $variable = function() {
        echo 'abc';
    };
    

    然后这样称呼它:

    $variable();
    

    demo

    【讨论】:

      【解决方案3】:

      您似乎想捕捉正在回显的内容(您使用的是 Wordpress 吗?):

      ob_start();
      abc();
      $variable = ob_get_clean();
      
      echo $variable;
      

      启动一个缓冲区来保存输出,然后从缓冲区中获取输出。

      【讨论】:

      • 我正在建立自己的网站。我按照你说的做了,它给了我“1”。问题是我想在变量中获得函数的值并稍后调用它,而不是在我将它分配给变量时。
      • 好吧,我错了。我输入了 ob_start();开始但结束而不是 ob_get_clean();我输入了 ob_start();再一次……
      【解决方案4】:

      你要使用的是PHP中的变量函数,是这样完成的。

      function foo() {
          return "Hello I am foo()\n";
      }
      
      $func = 'foo';
      echo $func();        // This calls foo()
      

      PHP Manual page for Variable Functions

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多