假设我有一个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
调用传递查询字符串,如图所示。
如果在远程HTTP URL上使用file_get_contents
,则可以使用查询字符串,但这将比本地include
或file_get_contents
慢得多。
顺便说一句,你仍然可以include
需要$_GET
/$_POST
变量的东西:
<?php
$_GET['something'] = true;
include('something.php');