如何在其他PHP文件中调用函数?

问题描述:

我试图调用一个文件中的函数到另一个PHP,不过,我收到以下错误:如何在其他PHP文件中调用函数?

致命错误:调用未定义的方法的SQLite3 :: print_model_query_form()

我有两个文件。第一个 - dbfunctions.php包含方法print_model_query_form()。 第二个文件query_models包含以下代码:

include_once("functions/dbfunctions.php"); 
$db = new SQLite3('D:\xampp\sim\htdocs\dis_sqlite_database\disSQL3.db'); 
print $db->print_model_query_form("query_models.php"); 

函数看起来有点像这样:

function print_model_query_form($action, $current_values = 0){ 
    $db = new SQLite3('D:\xampp\sim\htdocs\dis_sqlite_database\disSQL3.db'); 

    if($current_values){ 
     // set to previous values. 
    }else{ 
     // get POST values. 
    } 

    // Code to print query form. 
} 

预先感谢任何帮助。

+0

我们怎么可能不知道'functions/dbfunctions.php'中的内容?错误消息告诉我们该方法不在该类中,并且PHP解释器不会在这些事情上犯错 – RiggsFolly

+0

@RiggsFolly道歉。编码还是比较新的! 'dbfunctions.php'包含许多不同的功能。 'print_model_query_form'肯定存在于文件中。我可以采取哪些步骤来调试此问题? – Breo

+0

它是一个**函数**或一个类的**方法**你称它为一个类的方法 – RiggsFolly

由于您只在第3行发现致命错误,因此应该成功实例化$ db。所以,问题应该是print_model_query_form方法。

参照PHP:SQLite3 - Manual

,不存在这样的内置方法称为print_model_query_form

[编辑1] 尝试使用require_once,而不是include_once,以确保你已经包括dbfunctions.php成功。

[编辑2] 检查,如果你使用的是PHP的内置的SQLite3类(检查您的php.ini 扩展= php_sqlite3.dll延长= php_sqlite3.so)。

如果是这种情况,请检查您dbfunctions.php为: -

  • class Something
  • new SQLite3
  • function print_model_query_form

如果以上存在,那么就应该更换你的第二行, $db = new Something(..);

注意:如果您可以显示dbfunctions.php,或让我们根据猜测做出假设,那会更好。

+0

非常感谢您的回答。我已经检查了一切,直到最后一点,你说我应该替换第二条线。你是什​​么意思,我应该用'new Something(..)'替换它?再次感谢。 – Breo

+0

此外,'dbfunctions.php'超过2000行代码包含许多不同的功能。 – Breo

+0

只是设法让它工作。非常感谢! – Breo