如何在函数中保存回显值

问题描述 投票:-2回答:4

所以我想在函数中获取回显值,我想使用函数外的值。这是功能

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

php arrays function echo
4个回答
1
投票

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


0
投票

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

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

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

0
投票

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


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;
© www.soinside.com 2019 - 2024. All rights reserved.