PHP include/require внутри функции

возможно ли иметь операторы return внутри включенного файла, который находится внутри функции в PHP?

Я ищу, чтобы сделать это, поскольку у меня есть много функций в отдельных файлах, и все они имеют большой кусок общего кода вверху.

As in
function sync() {
  include_once file.php;
  echo "Test";
}
.на PHP:
...
return "Something";

в момент возврата что - то, кажется, выходит из include_once, а не из функции синхронизации, возможно ли, чтобы возврат включенного файла сломался наружу?

извините за слегка Одли работал вопрос, надеюсь, я сделал это имеет смысл.

спасибо,

5 ответов


вы можете вернуть данные из включенного файла в вызывающий файл через return заявление.

включить.в PHP

return array("code" => "007", "name => "James Bond");

.в PHP

$result = include_once "include.php";
var_dump("result);

но вы не можете позвонить return $something; и как вернуть заявление в вызывающий скрипт. return работает только в пределах текущей области.

EDIT:

Я ищу, чтобы сделать это, у меня много функций в отдельных файлах и они все есть большой кусок общей код наверху.

в этом случае почему бы вам не поместить этот "общий код" в отдельные функции вместо этого-это сделает работу красиво в качестве одной из целей функций повторное использование кода в разных местах, не записывая его снова.


return не будет работать, но вы можете использовать выходной буфер, если вы пытаетесь повторить некоторые вещи в файле include и вернуть его куда-то еще;

function sync() {
  ob_start();
  include "file.php";
  $output = ob_get_clean();
// now what ever you echoed in the file.php is inside the output variable
  return $output;
}

Я не думаю, что это так работает. Включать не просто ввел код, она также оценивает его. Таким образом, возврат означает, что ваш вызов функции "include" вернет значение.

см. также часть руководства об этом:

обработка возвратов: возможно выполните оператор return() внутри включенный файл для завершения обработка в этом файле и возврат к сценарий, который его вызвал.

в инструкция return возвращает включенный файл и не вставляет инструкцию return.

на руководство имеет пример (Пример #5), который показывает, что делает "return":

упрощенный пример:

вернуться.в PHP

<?php  
$var = 'PHP';
return $var;
?>

testreturns.php

<?php   
$foo = include 'return.php';
echo $foo; // prints 'PHP'
?>

Я думаю, вы ожидаете return вести себя скорее как исключение, чем оператор return. Возьмем для примера следующий код:

вернуться.на PHP:

return true;

?>

исключения.на PHP:

<?php

throw new exception();

?>

при выполнении следующего кода:

<?php

function testReturn() {
    echo 'Executing testReturn()...';
    include_once('return.php');
    echo 'testReturn() executed normally.';
}

function testException() {
    echo 'Executing testException()...';
    include_once('exception.php');
    echo 'testException() executed normally.';
}

testReturn();

echo "\n\n";

try {
    testException();
}
catch (exception $e) {}

?>

...в результате вы получаете следующий результат:

выполнение testReturn ()...testReturn () выполняется нормально.

выполнение testException ()...

если вы используете метод исключения, обязательно поместите вызов функции в try...catch блок-наличие исключений, летающих повсюду, плохо для бизнеса.


рок-н-ролл такой :

.в PHP

function foo() {
   return (include 'bar.php');
}
print_r(foo());

бар.в PHP

echo "I will call the police";
return array('WAWAWA', 'BABABA');

выход

I will call the police
Array
(
    [0] => WAWAWA
    [1] => BABABA
)

просто покажите мне, как

такой :

return (include 'bar.php');

хорошего дня !