如何在函数中保存回显值

时间:2017-05-05 10:21:20

标签: php arrays function echo

所以我想在函数中获取echo值,我想使用函数外的值。 这是函数

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,则值将不同。谢谢你以前。

4 个答案:

答案 0 :(得分:1)

echo打印到STDOUT。返回您的变量,或将其设置为类变量或全局变量 - 这样您就可以将其用于函数

答案 1 :(得分:0)

你应该对如何使用函数及其值进行一些阅读。 同时,请保持您的代码不变,暂时将echo替换为return

然后你可以使用这样的功能:

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

答案 2 :(得分:0)

您在函数结束时使用return $j,或将$ j声明为全局变量。这样您就可以在页面的每个位置使用它。

答案 3 :(得分:0)

我不知道$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;