如何使用 ajax 在函数内调用 medoo 1.5?
How to call medoo 1.5 inside a function with ajax?
这里是第一个问题。我想用 ajax 调用 php 函数。在函数内部,我有一个来自名称空间上的库的 class 。
我一直在 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 调用,我会收到内部服务器错误,因为找不到 class Medoo。
我无法使用代码:
use Medoo\Medoo;
在 if 语句或函数内部,因为这些东西的局部范围。我应该在全球范围内称呼它。但我正在使用 ajax 调用。
我应该在 function.php 中再次写 "use" 语句还是应该在其他地方写?
是否有解决方案或唯一的解决方案是在调用 class (内部函数)时摆脱 "use" 语句并使用完整的命名空间路径?
您应该只在代码中调用 Medoo 一次,所以在 php 文件的顶部
require 'Medoo.php';
require 'function.php';
use Medoo\Medoo;
$db = new Medoo(DB_NAME);
然后将 medoo class 传递给您的函数,例如
echo my_function($db);
在您的函数中,您可以使用 medoo,例如
function my_function($db){
$value = $db->get('...','...','...');
return $value;
}
希望这对您有所帮助。
这里是第一个问题。我想用 ajax 调用 php 函数。在函数内部,我有一个来自名称空间上的库的 class 。
我一直在 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 调用,我会收到内部服务器错误,因为找不到 class Medoo。
我无法使用代码:
use Medoo\Medoo;
在 if 语句或函数内部,因为这些东西的局部范围。我应该在全球范围内称呼它。但我正在使用 ajax 调用。
我应该在 function.php 中再次写 "use" 语句还是应该在其他地方写? 是否有解决方案或唯一的解决方案是在调用 class (内部函数)时摆脱 "use" 语句并使用完整的命名空间路径?
您应该只在代码中调用 Medoo 一次,所以在 php 文件的顶部
require 'Medoo.php';
require 'function.php';
use Medoo\Medoo;
$db = new Medoo(DB_NAME);
然后将 medoo class 传递给您的函数,例如
echo my_function($db);
在您的函数中,您可以使用 medoo,例如
function my_function($db){
$value = $db->get('...','...','...');
return $value;
}
希望这对您有所帮助。