首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ajax在函数中调用medoo 1.5?

如何使用ajax在函数中调用medoo 1.5?
EN

Stack Overflow用户
提问于 2018-02-20 08:07:27
回答 1查看 227关注 0票数 0

这里的第一个问题。我想用ajax调用一个php函数。在函数内部,我有一个来自命名空间上的库的类。

我一直在使用medoo和0.9版本的php内部函数,一切都运行得很好。我还对ajax调用使用了相同的函数。

在我的function.php文件中有:

代码语言:javascript
复制
//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()时,我使用:

代码语言:javascript
复制
require 'Medoo.php';
require 'function.php';
use Medoo\Medoo;
echo my_function();

一切都运行得很好。现在,如果我调用相同的ajax调用,我会得到内部服务器错误,因为找不到Medoo类。

我不能使用以下代码:

代码语言:javascript
复制
use Medoo\Medoo;

在if语句中或在函数中,因为这些东西的局部作用域。我应该在全局范围内调用它。但我使用的是ajax调用。

我应该在function.php中重新编写"use“语句,还是应该在其他地方这样做?是否有一个解决方案,或者唯一的解决方案是在调用类(在函数内部)时去掉"use“语句并使用完整的命名空间路径?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-04 03:15:43

你应该在你的代码中只调用Medoo一次,所以在php文件的顶部

代码语言:javascript
复制
require 'Medoo.php';
require 'function.php';
use Medoo\Medoo;
$db = new Medoo(DB_NAME);

然后将medoo类传递给函数,例如

代码语言:javascript
复制
echo my_function($db);

在你的函数中,你可以使用medoo,比如

代码语言:javascript
复制
function my_function($db){
    $value = $db->get('...','...','...');
    return $value;
}

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48876031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档