|
|
|
| Хочу уточнить такой момент на счет работы конструкции include()
Главный файл:
<?php
$x = include("2.php");
echo $x;
?>
|
Файл 2.php первый вариант:
Файл 2.php второй вариант:
Почему в первом случаи в окно браузера выводится "1", а во втором "3"? | |
|
|
|
|
|
|
|
для: Alexey_Tihonenko
(18.06.2009 в 12:12)
| | В первом случае $x принимает результат выполнения функции include() (булево значение, т.е. true или 1 если функция успешно выполнена), а во втором случае - результат работы функции include()
return.php
<?php
$var = 'PHP';
return $var;
?>
noreturn.php
<?php
$var = 'PHP';
?>
testreturns.php
<?php
$foo = include 'return.php';
echo $foo; // prints 'PHP'
$bar = include 'noreturn.php';
echo $bar; // prints 1
?>
|
| |
|
|
|
|
|
|
|
для: Петр
(18.06.2009 в 12:17)
| | Уточнение:
куда девается "3" в первом случаи и куда девается "TRUE" во втором случаи? | |
|
|
|
|
|
|
|
для: Alexey_Tihonenko
(18.06.2009 в 12:22)
| | "3" никуда не девается, оно просто висит в памяти, команды "вывести" ведь не было. а TRUE во втором случае заменяется на результат выполнения функции (т.е. на "3") | |
|
|
|
|
|
|
|
для: Петр
(18.06.2009 в 12:38)
| | Попробовал вывести тройку в первом случаи таким способом:
<?php
echo (include("2.php"));
?>
|
Как и ожидалось,вместо тройки вывелась единица.
Все таки, можно ли как-нибудь добраться до тройки в первом случаи(без оператора return) из главного файла, вывести ее на экран, поместить в переменную?
P.S. Я понимаю, что это не совсем корректный способ применения конструкции include(), просто интересно можно ли это осуществить. | |
|
|
|
|
|
|
|
для: Alexey_Tihonenko
(18.06.2009 в 12:48)
| | если в 2.php будет вместо этого: 3, это: echo 3;
то вполне возможно, но придётся воспользоваться буферизацией | |
|
|
|