[英]How to call medoo 1.5 inside a function with ajax?
這里的第一個問題。 我想用ajax調用php函數。 在函數內部,我有一個來自命名空間上的庫的類。
我一直在php中使用0.9版本的medoo ,並且一切正常。 我還對ajax調用使用了相同的功能。
在我的function.php文件中,我有:
//if called from js with ajax I use a var in the link to know for ex. variable_from_js=1
if(isset($_GET['variable_from_js']){
$response = my_function();
echo $response;//i catch the response with js then
exit;
}
//my function
function my_function(){
$a = new Medoo(DB_NAME);//DB_NAME is a global
...
}
Medoo正在使用版本大於1.2的名稱空間以及許多其他庫。 當我直接調用my_function()時,我使用:
require 'Medoo.php';
require 'function.php';
use Medoo\Medoo;
echo my_function();
一切都很好。 現在,如果我調用相同的ajax調用,則會收到內部服務器錯誤,因為找不到類Medoo。
我不能使用代碼:
use Medoo\Medoo;
由於這些內容的局部范圍,在if語句內部或函數內部。 我應該在全球范圍內稱呼它。 但是我正在使用ajax調用。
我應該在function.php內再次寫“ use”語句還是應該在其他地方做? 有沒有解決方案,或者唯一的解決方案是在調用類(內部函數)時擺脫“ use”語句並使用完整的名稱空間路徑?
您只應在代碼中調用一次Medoo,因此在php文件的頂部
require 'Medoo.php';
require 'function.php';
use Medoo\Medoo;
$db = new Medoo(DB_NAME);
然后將medoo類傳遞給您的函數,例如
echo my_function($db);
在您的函數中,您可以使用medoo,例如
function my_function($db){
$value = $db->get('...','...','...');
return $value;
}
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.