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