【问题标题】:how to save echo value in a function如何在函数中保存回声值
【发布时间】:2017-05-05 10:21:19
【问题描述】:

所以我想在函数中获取回显值,并且我想在函数之外使用该值。 这是函数

function boyer_moore($pattern, $text)
{
   $n = strlen($text);
   $m = strlen($pattern);
   $goodSuffixes    = array();
   $badCharacters   = array();

   goodSuffixes($pattern, $goodSuffixes);
   badCharacters($pattern, $badCharacters);
   $j = 0;
   while ($j < $n - $m) {
      for ($i = $m - 1; $i >= 0 && $pattern[$i] == $text[$i + $j]; $i--);
      if ($i < 0) {
          echo $j;
          $j += $goodSuffixes[0];
      } else {
         $j += max($goodSuffixes[$i], $badCharacters[$text[$i + $j]] - $m + $i + 1);
      }
     }}

我想在函数外使用值 echo $j 并将其保存在变量中。 我还是初学者。 请帮助我,谢谢你。

我想累积所有 echo $j 值。 如果我在循环后使用 return $j ,则值会有所不同。之前谢谢你。

【问题讨论】:

  • $j 的值可以在循环中多次更改。您应该详细说明是否需要获取最后一个$j 值或累积所有$j
  • $j值推入数组,从函数中返回数组
  • $j 是一个计数。您要返回最终计数吗?在循环后添加 return $j
  • @RomanPerekhrest 我想累积所有 $j 值
  • @Hery,你可以传入一个参数给函数(一个空数组)或者使用global 关键字在函数内部填充一个全局数组

标签: php arrays function echo


【解决方案1】:

回显到标准输出。返回您的变量,或将其设置为类变量或全局变量 - 这样您就可以在函数中使用它

【讨论】:

    【解决方案2】:

    您可能应该阅读一下如何使用函数及其值。 同时,保持您的代码不变,现在只需将echo 替换为return

    然后你可以像这样使用函数:

    $my_pattern = //some pattern
    $my_text = //some text
    $my_outside_the_function_variable = boyer_moore($my_pattern, $my_text);
    

    【讨论】:

      【解决方案3】:

      您好,在您的函数末尾使用return $j,或将$j 声明为全局变量。这样您就可以在页面的任何位置使用它。

      【讨论】:

        【解决方案4】:

        我不知道$pattern$text 应该是什么,但要使用您提供的信息回答您的问题,您需要从函数返回$j,然后在调用boyer_moore() 后回显它

        <?php
        
        function boyer_moore($pattern, $text)
        {
            $n = strlen($text);
            $m = strlen($pattern);
            $goodSuffixes = array();
            $badCharacters = array();
        
            goodSuffixes($pattern, $goodSuffixes);
            badCharacters($pattern, $badCharacters);
            $j = 0;
            while ($j < $n - $m) {
                for ($i = $m - 1; $i >= 0 && $pattern[$i] == $text[$i + $j]; $i--)
                    ;
                if ($i < 0) {
                    $j += $goodSuffixes[0];
                } else {
                    $j += max($goodSuffixes[$i], $badCharacters[$text[$i + $j]] - $m + $i + 1);
                }
            }
            return $j;
        }
        
        ...
        ...
        $j = booyer_moore($pattern, $text);
        echo $j;
        

        【讨论】:

          猜你喜欢
          • 2013-12-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-07-30
          • 2016-02-04
          • 2015-01-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多