Başka bir PHP sayfası içinde bir PHP komut dosyası quiting

4 Cevap php

Ben yazıyorum bir PHP script için önbelleğe alma uygulamak çalışıyorum, ama ben şu sorunun doğru çekiliyorum. Ben komut diğer PHP sayfaları dahil olmak istiyorum, ama ben önbelleğe alınmış dosya geçmek ve bu komut dosyası ve ana sayfayı çıkar gömülü komut çıkmak, ama ana sayfada kod kalanını ayrıştırmak değil çalıştığınızda . Örnek için aşağıdaki kodu bakın.


index.php

<?php
  echo "Hello World!<br />";

  include("file2.php");

  echo "This line will not be printed";
?>


file2.php

<?php
  $whatever = true;

  if ($whatever == true) {
    echo "file2.php has been included<br />";
    exit; // This stops both scripts from further execution
  }

  // Additional code here
?>


If the above index.php is executed you get the following output:

Hello World! 
file2.php has been included

Ancak, bu gibi bakmaya çalışıyorum:

Hello World! 
file2.php has been included
This line will not be printed

Teşekkürler yardımcı olanlar için gelişmiş!

4 Cevap

Sadece bir başka açıklamada "Burada ek kod" wrap?

<?php
  $whatever = true;

  if ($whatever == true) {
    echo "file2.php has been included<br />";
  } else {
    // Additional code here
  }
?>

Aksi takdirde ben size ne alıyoruz emin değilim. Geçerli dosyanın sadece yürütme (hangi için, hiçbir komut yoktur) - exit komutu her zaman bütün olarak mevcut yürütme sonlandırır

EDIT

PHLAK, tomhaigh, MichaelM ve Mario yorumlarına ve mesajlar sayesinde, kendimi bugün bir şey öğrendim - Eğer CAN gerçekten tek bir dosyaya dahil w / return komutu yürütme sonlandırabileceğimizi . Teşekkürler çocuklar!

Dahil dosyasındaki return; yerine exit; kullanımı - bu sadece bu script durdurulması olacaktır.

Bir de ana komut örneğin bir değer döndürmek için kullanabilir unutmayın

dosya1.php

<?php
echo 'parent script';
$val = include('file2.php'); //$val will equal 'value'
echo 'This will be printed';

file2.php

<?php
echo 'child script';
return 'value';

Ben şahsen mümkün if-else koşulları önlemek için deneyin ve erken çıkış yakalayan koşulları (orada bunun için bir icat terim ama eğer emin değil) kullanın.

index.php

<?php
echo 'header';
include 'content.php';
echo 'footer';
?>

content.php

<?php
if ($cached)
{
    echo cached_version();
    return; // return is not just for functions, in php...
}

//proceed with echoing whatever you want to echo if there's no cached version.
...
...
?>

Neden bir işlev içine file2.php içeriğini saklanması değil. Eğer gerektiğinde bu şekilde size işlevi dönebilirsiniz, ve yürütme kalanı durmayacaktır. örneğin:

file2.php

<?php
    // this function contains the same code that was originally in file2.php
    function exe() 
    {
        $whatever = true;
        if ($whatever)
        {
            echo "file2.php has been included <br />";
            // instead of exit, we just return from the function
            return;
        }
     }

     // we call the function automatically when the file is included
     exe();
?>

Olduğunu tam olarak index.php bırakın ve size ulaşmak için çalışıyoruz çıktı görmelisiniz.