是否可以使用在循环/函数外获得的值,使用或调用它的循环/函数?
下面是我的功能
function off($limit)
{
$string=file_get_contents("feed.xml");
$xml=simplexml_load_string($string);
foreach ($xml->FOUND->CAT as $place)
{
$limits = $place->CORDS;
$rate=$place->STARS;
$phone=$place->PHONE;
}
}
我把它叫到一个有html标签的php文件。是否可以将函数返回的值放入由XXXX标记的行中以显示?
<html>
<body>
<?php
off(‘57854’);
?>
<table width="200" border="1">
<tr>
<td>XXXXX</td>
<td>XXXXX</td>
<td>XXXXX</td>
</tr>
<tr>
<td>XXXXX</td>
<td>XXXXX</td>
<td>XXXXX</td>
</tr>
<tr>
<td>XXXXX</td>
<td>XXXXX</td>
<td>XXXXX</td>
</tr>
</table>
</body>
</html>
我想知道有没有一种方法可以在函数中不包含html标签来显示。
任何帮助将不胜感激。
由于
答案 0 :(得分:2)
您在函数中添加了return语句。然后你可以在“外面”使用它
答案 1 :(得分:2)
是的,你可以得到一个函数的结果并在外面使用它。例如:
function addSomething($a, $b)
{
$sum = $a + $b;
return $sum;
}
$mySum = addSomething(15, 45);
print $mySum; // Will show 60
你只能'返回'一个变量,因为它会在你返回后“退出”这个函数。如果您需要的数据不仅仅是单个变量,您可以返回一个数组并在另一侧选择它。
答案 2 :(得分:2)
好吧,没有PHP就不能循环,所以你的HTML必须在循环中。但是如果有帮助的话,你可以从你的函数返回一个简化的数组:
function off($limit)
{
$string = file_get_contents("feed.xml");
$xml = simplexml_load_string($string);
$return = array();
foreach ($xml->FOUND->CAT as $place)
{
$return[] = array(
'limits' => $place->CORDS,
'rate' => $place->STARS,
'phone' => $place->PHONE
)
}
return $return;
}
该函数现在构建一个结果数组,以返回给调用者。然后你可以循环遍历那个数组:
<html>
<body>
<?php
$arr = off('57854');
?>
<table width="200" border="1">
<?php foreach($arr as $row): ?>
<tr>
<td><?php echo $row['limits']; ?></td>
<td><?php echo $row['rate']; ?></td>
<td><?php echo $row['phone']; ?></td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>
这样,你可以避免在你的函数中使用HTML,这总是一件好事 - 让你的逻辑与演示文稿分开。
答案 3 :(得分:0)
您需要将该值退出函数:
function foo() {
return array("bar");
}
每次拨打foo()
,我都能抓住它的返回值:
$items = foo(); // $items is now array("bar");
foreach($items as $item) {
print "<td>" . $item . "</td>"; // <td>bar</td>
}
答案 4 :(得分:0)
有三种方式:
1.,将每个循环周转的结果保存到数组中,然后循环遍历数组
<table>
<?php foreach ($array as $a){
echo "<tr><td>$a</td></tr>";
} ?>
</table>
2.或者你通过循环(在off
函数中)回显每一行
3.或者您使用ob_start
启动缓冲区,然后将其保存到某个变量($result = ob_get_contents()
)
无论哪种方式,您都需要更多循环和一些echo
s。
答案 5 :(得分:-1)
并非没有使每个功能变量全局
function func() {
global $var1, $var2, ...;
...
}
?>
<td><?=$var1?></td>
注意:要使上述功能正常,必须启用短标记,否则必须执行<?php echo $var1 ?>