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');
хорошего дня !