Я хотел добиться того же эффекта. В моем случае у меня есть функции, которые генерируют HTML, который я хочу иногда отображать напрямую (при выполнении вызова Ajax) или возвращать (когда выполняется вызов из другого скрипта).
Например, функция, которая создает список элементов HTML <option>
- listOfOption($filter)
. Когда одна из моих страниц создается впервые, вызывается функция, и результат отображается на месте:
<?= listOfOption($var) ?>
Но иногда одни и те же данные должны быть получены при вызове Ajax:
http://site.com/listOfOption.php?parameter=2
Вместо того, чтобы писать два разных сценария или указывать поведение параметра, я сохраняю listOfOption($filter)
в своем собственном файле, например:
if (__FILE__ == $_SERVER['SCRIPT_FILENAME'])
{
echo listOfOption($_REQUEST['parameter']);
}
function listOfOption($filter)
{
return '<option value="1">Foo</option>';
}
Таким образом, если вызов выполняется из другого сценария, он возвращает данные; в противном случае он печатает данные.
Обратите внимание, что если параметр не передается в функцию, мне не нужно было бы этого делать, я мог бы постоянно повторять данные и заменять вызов <?= listOfOption() ?>
на <? listOfOption() ?>
, чтобы все было ясно. *