如果我在我的函数中使用return,我将只获得一个值。
如果我使用echo,我会获得所有值。我不明白。
foreach($matches[0] as $matchbun)
{
$var1 = str_split($matchbun, 34);
$replace_line = "-";
$var_final = str_replace($replace_line, " ", $var1[1]);
$replace_url = array('google.com', '/name/');
$replace_url_with = array('yahoo.com', '/url_');
$url_final = str_replace($replace_url, $replace_url_with, $matchbun);
return ''.ucfirst($url_final).'';
}
似乎我无法将回声插入数据库,如果我运行该功能,它们会显示为空白。 怎么办?
答案 0 :(得分:4)
如果您有return
,则代码将无法执行。生成整个数据,然后return
该数据。
您可以构建一个数组。喜欢 -
$urls= array();
foreach($matches[0] as $matchbun)
{
.....
$urls[]= ucfirst($url_final);
}
return $urls;
或者您可以生成一个字符串。喜欢 -
$urls= '';
foreach($matches[0] as $matchbun)
{
.....
$urls.= ucfirst($url_final);
}
return $urls;
答案 1 :(得分:0)
好吧,如果你使用return
,你将在第一次迭代时退出该函数。
如果使用echo
,则不会退出该函数,而是回显foreach循环的每次迭代。
答案 2 :(得分:0)
退出循环。并将要返回的数据放入变量中。像这样:
foreach($matches[0] as $matchbun)
{
$var1 = str_split($matchbun, 34);
$replace_line = "-";
$var_final = str_replace($replace_line, " ", $var1[1]);
$replace_url = array('google.com', '/name/');
$replace_url_with = array('yahoo.com', '/url_');
$url_final = str_replace($replace_url, $replace_url_with, $matchbun);
$myNewVariable .= $url_final;
}
return $myNewVariable;