【问题标题】:PHP function and assignment: confusion between echo and returnPHP函数和赋值:echo和return之间的混淆
【发布时间】:2020-05-12 07:30:56
【问题描述】:

例如:

function countdown() 
{
  echo "4, 3, 2, 1, ";
  return "blastoff!";
}

$return_value = countdown();
echo $return_value;

countdown() 函数被调用时,它将打印4, 3, 2, 1

另外echo $return_value; 将给blastoff!

但是怎么做呢?

我的意思是如果$return_value = countdown(); 那么,$return_value 应该给出countdown() 的值,即4, 3, 2, 1

请帮我解决这个困惑!!

【问题讨论】:

    标签: php function return-value


    【解决方案1】:

    所以 echo 只是打印到屏幕上。这将发生在你称之为回声的地方。您的回报是返回字符串“Blastoff!”因此,当您调用函数 countdown() 时,它将在屏幕上显示 4、3、2、1,然后返回字符串“Blastoff!”然后您将其分配为“Blastoff!”到名为 $return_value 的变量,然后回显该变量的值为“Blastoff!”。希望这有助于更清楚地了解正在发生的事情。

    【讨论】:

      【解决方案2】:

      这是因为echo 是一个函数,它在这种情况下简单地输出它后面的任何内容 (4, 3, 2, 1,)。字符串 '4, 3, 2, 1, ' 永远不会被存储或传递到任何地方(即它不会被函数返回)。

      如果你想返回完整的字符串,你必须明确告诉函数这样做:

      function countdown() 
      {
        $countdown = "4, 3, 2, 1, ";
        return $countdown."blastoff!";
      }
      
      $return_value = countdown();
      echo $return_value;
      
      // Output: 4, 3, 2, 1, blastoff!
      

      或者,如果您只想返回“4, 3, 2, 1,”:

      function countdown() 
      {
        $countdown = "4, 3, 2, 1, ";
        return $countdown;
      }
      
      $return_value = countdown();
      echo $return_value;
      
      // Output: 4, 3, 2, 1, 
      

      【讨论】:

        【解决方案3】:

        countdown() 返回的唯一值是'blastoff!',这就是为什么这个字符串只分配$return_value

        echo '4, 3, 2, 1, '; 只是函数countdown() 在最终返回之前必须做的事情 'blastoff!'

        最好的问候

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-02-22
          • 1970-01-01
          • 2011-09-22
          • 2013-08-14
          • 2016-09-22
          • 2015-06-01
          • 2020-01-08
          • 2012-10-21
          相关资源
          最近更新 更多