Php 在函数外部使用值
是否可以在使用或调用循环/函数的外部使用在循环/函数内获得的值 下面是我的功能Php 在函数外部使用值,php,function,Php,Function,是否可以在使用或调用循环/函数的外部使用在循环/函数内获得的值 下面是我的功能 function off($limit) { $string=file_get_contents("feed.xml"); $xml=simplexml_load_string($string); foreach ($xml->FOUND->CAT as $place) { $limits = $place->CORDS; $rate
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>
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
我想知道是否有一种不在函数中包含html标记的显示方法
任何帮助都将不胜感激
谢谢你在函数中添加了一条语句。然后,您可以在“外部”使用它,而不必将每个函数变量设置为全局变量
function func() {
global $var1, $var2, ...;
...
}
?>
<td><?=$var1?></td>
函数func(){
全球$var1,$var2。。。;
...
}
?>
注意:要使上述功能正常工作,必须启用短标记,否则您必须执行
您需要从函数中返回值:
function foo() {
return array("bar");
}
无论何时调用foo()
,我都能够捕获它的返回值:
$items = foo(); // $items is now array("bar");
foreach($items as $item) {
print "<td>" . $item . "</td>"; // <td>bar</td>
}
$items=foo();//$项目现在是数组(“条形”);
foreach($items作为$item){
打印“.$item.”;//条
}
有三种方法:
1.,或者将每次循环周转的结果保存到一个数组中,然后在数组中循环
<table>
<?php foreach ($array as $a){
echo "<tr><td>$a</td></tr>";
} ?>
</table>
或者通过循环回显每一行(在off
功能中)
3.,或者使用ob\u start
启动缓冲区,然后将其保存到某个变量($result=ob\u get\u contents()
)
无论如何,您都需要更多的循环和一些回声。是的,您可以获得函数的结果并在外部使用它。例如:
function addSomething($a, $b)
{
$sum = $a + $b;
return $sum;
}
$mySum = addSomething(15, 45);
print $mySum; // Will show 60
您只能“返回”一个变量,因为它将在返回后“退出”函数。如果您需要的数据多于单个变量,那么您可以返回一个数组并从另一端获取该数组。好的,没有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,这始终是一件好事——将您的逻辑与演示分开。为什么要否决?这正是OP所要求的,有一个明确的例子。