Итак, у меня есть sidebar.php, который включен в index.php
. В определенном состоянии я хочу, чтобы sidebar.php
перестала работать, поэтому я подумал о том, чтобы положить exit
в sidebar.php
, но на самом деле выходит из всего кода под ним, означая все под include('sidebar.php');
в index.php
, весь код будет также пропустить. Есть ли способ, чтобы exit
пропускал только код в sidebar.php
?
Есть ли способ выйти из включенного только файла php?
Ответ 1
Просто используйте return;
Также имейте в виду, что можно фактически вернуть что-то вызывающему script таким образом.
если ваш родительский script имеет $somevar = include("myscript.php");
, а затем в myscript.php вы говорите... return true;
вы получите это значение в $somevar
Ответ 2
Да, вы просто используете return;
. Ваш файл sidebar.php может выглядеть примерно так:
<?php
if($certain_condition) {
return;
} else {
// Do your stuff here
}
?>
Ответ 3
Я знаю, что это действительно старый вопрос, но я недавно взял на себя базу кода другого разработчика, который использовал выход религиозно, что означает, что родительский файл, который включал различные файлы, должен был быть спроектирован таким образом, чтобы включить файлов модулей были сделаны в конце, чтобы он не отрезал страницу. Я написал небольшой PHP script для замены всех вхождений "exit;" с "return;".
if($handle = opendir("path/to/directory/of/files")) {
while(false !== ($file = readdir($handle))) {
if("." === $file) continue;
if(".." === $file) continue;
$pageContents = file_get_contents($file);
$pageContents = str_replace("exit;", "return;", $pageContents);
file_put_contents($file, $pageContents);
echo $file . " updated<br />";
}
}
Я надеюсь, что это поможет кому-то.