Допустим, у меня есть файл PHP some_function.php
с которым я могу бегать file_get_contents('some_function.php?' . $parameters_string)
(или любая аналогичная функция). Параметры этой функции могут быть заданы с помощью метода GET или POST HTTP.
Вместо этого я мог include
нужен файл и использовать эту функцию в одном скрипте.
Я мог бы понять, что было бы разумно, если мне нужно запустить отдельный процесс или мне нужно, чтобы эта функция была на отдельном сервере. Но если нет, есть ли причины не делать этого? Может быть, этот звонок будет намного медленнее? Что-нибудь еще, что я должен принять во внимание?
Я знаю, что не смогу использовать глобальные переменные (которые я все равно считаю плохим стилем кодирования).
Используя file_get_contents()
вы на самом деле не будете вызывать соответствующую функцию, но сделаете HTTP
запросить передачу некоторых предопределенных параметров, которые затем будут переданы функции в вашем коде.
С помощью include()
вы могли бы иметь библиотеку classes
или же functions
внутри этого файла и вызывайте их напрямую по мере необходимости и столько раз, сколько необходимо.
ПРИМЕР:
library.php
function my_function_1() { }
function my_function_2() { }
index.php
include('library.php');
my_function_1(); // call the first function
my_function_2(); // call the second function
my_function_1(); // call the first function again, just because we can
Вы не сможете сделать это через HTTP
запрос и даже если вы сделали hardcode
ваш some_function.php
Для выполнения некоторых функций, подобных описанным выше, вы получите действительно плохой код, который будет сложно настроить в соответствии с вашими потребностями и практически невозможно поддерживать, когда он станет больше.
Вы не можете передать строку запроса через локальный file_get_contents
позвоните, как показано.
Если вы используете file_get_contents
на удаленном HTTP-URL вы сможете использовать строку запроса, но это будет значительно медленнее, чем локальный include
или же file_get_contents
,
Можно, кстати, еще include
то, что нужно $_GET
/$_POST
переменные:
<?php
$_GET['something'] = true;
include('something.php');