2014-10-18 27 views
0

比方說,我有一個PHP文件some_function.php,我可以運行file_get_contents('some_function.php?' . $parameters_string)(或任何類似的功能)。這個函數的參數可以通過GET或POST HTTP方法給出。通過HTTP從另一個PHP腳本調用一個函數:速度較慢還是其他?

相反,我可以include需要的文件,並在一個腳本中使用此功能。

我可以弄清楚,如果我需要運行一個單獨的進程,或者我需要將此函數放在單獨的服務器上,這可能是合理的。但是,如果沒有,是否有任何理由不這樣做?可能這個電話會慢很多?還有什麼我應該考慮的?

我知道我無法使用全局變量(無論如何我都認爲它是一種錯誤的編碼風格)。

回答

0

如圖所示,您無法通過本地file_get_contents調用傳遞查詢字符串。

如果您在遠程HTTP URL上使用file_get_contents,則可以使用查詢字符串,但這會比本地includefile_get_contents慢得多。

你可以,順便說一句,仍然include東西,需要$_GET/$_POST變量:

<?php 

$_GET['something'] = true; 

include('something.php'); 
+0

嗯,我很驚訝:它真的不工作!是否正確我需要通過'file_get_context'的'context'參數傳遞查詢字符串? – 2014-10-18 12:36:36

+0

不,您不需要上下文來傳遞HTTP請求中的查詢字符串。 – ceejayoz 2014-10-18 20:57:43

1

使用file_get_contents()你會不會實際調用有問題的功能,但將作出HTTP要求通過一些預先定義的參數然後將被傳遞給你的代碼中的函數。

使用include()您可以在該文件中有一個classesfunctions的庫,並根據需要直接根據需要調用它們,並根據需要多次調用它們。

例:

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文件做一些像上面的功能,你會最終得到真正糟糕的代碼,很難定製你的需求和幾乎不可能保持一旦它變大。

相關問題