Я заметил раздражающую особенность в PHP (работает 5.2.11). Если одна страница включает в себя другую страницу (и обе содержат свои собственные переменные и функции), обе страницы знают о переменных друг друга. Однако их функции, похоже, не знают ни о каких переменных (кроме тех, которые объявлены внутри функции).
Мой вопрос: Почему это происходит? Как сделать так, чтобы это произошло , а не , или как лучше это сделать?
Ниже приведен пример того, что я описываю.
Главная страница:
<?php
$myvar = "myvar.";
include('page2.php');
echo "Main script says: $somevar and $myvar\n";
doStuff();
doMoreStuff();
function doStuff() {
echo "Main function says: $somevar and $myvar\n";
}
echo "The end.";
?>
page2.php:
<?php
$somevar = "Success!";
echo "Included script says: $somevar and $myvar\n";
function doMoreStuff() {
echo "Included function says: $somevar and $myvar\n";
}
?>
Выход:
Included script says: Success! and myvar.<br>
Main script says: Success! and myvar.<br>
Main function says: and<br>
Included function says: and<br>
The end.
Обе страницы выводят переменные просто отлично. Их функции нет.
WRYYYYYY