Php 如何在函数中保存回显值
所以我想在一个函数中得到echo值,我想在函数外使用这个值。 这就是函数Php 如何在函数中保存回显值,php,arrays,function,echo,Php,Arrays,Function,Echo,所以我想在一个函数中得到echo值,我想在函数外使用这个值。 这就是函数 function boyer_moore($pattern, $text) { $n = strlen($text); $m = strlen($pattern); $goodSuffixes = array(); $badCharacters = array(); goodSuffixes($pattern, $goodSuffixes); badCharacters($p
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);
}
}}
函数boyer_moore($pattern,$text)
{
$n=strlen($text);
$m=strlen($pattern);
$goodsuffix=array();
$badCharacters=array();
GoodSuffix($pattern,$GoodSuffix);
badCharacters($pattern$badCharacters);
$j=0;
而($j<$n-$m){
对于($i=$m-1;$i>=0&&$pattern[$i]==$text[$i+$j];$i--);
如果($i<0){
echo$j;
$j+=$goodsuffix[0];
}否则{
$j+=max($goodsuffix[$i],$badCharacters[$text[$i+$j]]-$m+$i+1);
}
}}
我想在函数外部使用值echo$j,并将其保存在变量中。
我还是初学者。
请帮帮我,谢谢你
我想累加所有echo$j值。
如果在循环之后使用return$j,则值将不同。谢谢您。向标准输出回波打印。返回您的变量,或将其设置为类变量或全局变量-这样您就可以在函数中使用它了您可能应该阅读一下如何使用函数及其值。 同时,保持代码原样,现在只需将
echo
替换为return
然后您可以使用如下功能:
$my_pattern = //some pattern
$my_text = //some text
$my_outside_the_function_variable = boyer_moore($my_pattern, $my_text);
Hi在函数末尾使用
返回$j
,或将$j声明为全局变量。这样您就可以在页面的任何地方使用它 我不知道$pattern
或$text
应该是什么,但是要用您提供的信息回答您的问题,您需要从函数返回$j
,然后在调用boyer_moore()
但是$j
值可以在循环中多次更改。您应该详细说明是需要获取最后一个$j
值,还是需要将所有$j
值累加到数组中,从函数返回数组$j
是一个计数。您想返回最后的计数吗?将return$j添加到loop@RomanPerekhrest我想累积所有的$jvalues@Hery,可以将参数传递给函数(空数组),或使用global
关键字填充函数内的全局数组
<?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;