所以我想在函数中获取回显值,我想使用函数外的值。这是功能
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,则值将不同。谢谢你以前。
echo打印到STDOUT。返回您的变量,或将其设置为类变量或全局变量 - 这样您就可以将它用于您的函数
您应该对如何使用函数及其值进行一些阅读。同时,保持你的代码不变,现在,只需用echo
替换return
。
然后你可以使用这样的函数:
$my_pattern = //some pattern
$my_text = //some text
$my_outside_the_function_variable = boyer_moore($my_pattern, $my_text);
您在函数结束时使用return $j
,或将$ j声明为全局变量。这样您就可以在页面的每个位置使用它。
我不知道$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;