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所要求的,有一个明确的例子。