Bir fonksiyon çıkış tarafında içindeki değerleri kullanma

6 Cevap php

bunun kullanıldığı yerde bir döngü / fonksiyon çıkış tarafında içinde döngü / fonksiyonu elde ya da denir değerleri kullanmak mümkün mü?

Aşağıda benim fonksiyonudur

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;
    }
}

Im html etiketleri vardır bir php dosyasına çağırıyor. O göstermek için XXXX tarafından işaretlenmiş satırlar halinde işlevi tarafından döndürülen değerleri almak mümkün mü?

<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>

Ben fonksiyonu içinde html etiketleri dahil olmadan görüntülemek için bir yolu var olduğunu bilmek istiyorum.

Herhangi bir yardım takdir edilecektir.

Teşekkürler

6 Cevap

Peki, PHP olmadan döngü yok edemez, bu yüzden HTML bir döngü içinde olmak zorundadır. Yardımcı olur Ama eğer, İşlevinizden basitleştirilmiş bir dizi dönebilirsiniz:

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;        
}

Işlevi artık çağırana geri iade edilecek sonuçların bir dizi oluşturur. Sonra bu dizi sayesinde sadece döngü yapabilirsiniz:

<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>

Bu şekilde, her zaman yapmak için iyi bir şey olduğu, senin fonksiyonun içinde HTML sahip önleyebilirsiniz - sunum ayrı mantık tutun.

Eğer işlevinde bir return deyimi koymak. ardından "dışarıda" kullanabilirsiniz

Evet, bir fonksiyonun sonucu almak ve dışında kullanabilirsiniz. Örnek:

function addSomething($a, $b)
{
    $sum = $a + $b;
    return $sum;
}

$mySum = addSomething(15, 45);

print $mySum;  // Will show 60

Bunu size 'exit' fonksiyon sadece 'geri dönüş' bir değişken dönecektir gibi bir kez. Eğer sadece tek bir değişken daha fazla veri gerekiyorsa bir dizi dönmek ve diğer tarafta o kadar alabilirsiniz.

Üç yolu vardır:

1.., Ya bir diziye her döngü geri dönüş sonucu kaydetmek ve sonra dizi döngü

<table>
<?php foreach ($array as $a){
echo "<tr><td>$a</td></tr>";
} ?>
</table>

2. Veya döngünün her satır echo (ki off fonksiyonunda)

3. Veya ob_start ile bir tampon başlamak ve daha sonra bazı değişken kaydetmek ($result = ob_get_contents())

Her iki şekilde de, daha döngüler ve bazı echo s gerekir.

Sen işlevinin dışına değeri döndürmek gerekir:

function foo() {
  return array("bar");
}

I foo(), onu yakalamak mümkün olacak diyoruz her zaman dönüş değeri bulunuyor:

$items = foo(); // $items is now array("bar");

foreach($items as $item) {
  print "<td>" . $item . "</td>"; // <td>bar</td>
}

Değil fonksiyon değişkenlerin her biri küresel yapmadan

function func() {
  global $var1, $var2, ...;
  ...
}
?>
<td><?=$var1?></td>

Not: çalışması için yukarıdaki için, kısa etiketleri etkin olmalıdır, aksi takdirde yapmak zorunda <?php echo $var1 ?>