require_once 问题,当调用另一个文件中包含的函数时

Posted

技术标签:

【中文标题】require_once 问题,当调用另一个文件中包含的函数时【英文标题】:require_once issues, when calling functions included in another file 【发布时间】:2011-12-23 04:53:30 【问题描述】:

这是我的问题:

index.php 内容:

require_once('phpcommonscripts/connections/connection.php');
require_once('phpcommonscripts/functions/logging.php');

    Func_LogToDB($logType, $actionType, $errMsg, $varUser);

connection.php 内容:

$hostname_MYDB = "localhost";
$database_MYDB = "MYDB";
$username_MYDB = "USER";
$password_MYDB = "PASS";
$MYDB = mysql_pconnect($hostname_MYDB, $username_MYDB, $password_MYDB) or trigger_error(mysql_error(), E_USER_ERROR);

logging.php 内容:

function Func_LogToDB($lType, $lAction, $lMessage, $lUser)        
    mysql_select_db($database_MYDB, $MYDB);


错误信息:

注意:未定义变量:第 22 行 /home/notes/public_html/phpcommonscripts/functions/logging.php 中的 database_MYDB

(第 22 行是 mysql_select_db() 行...)

我在这里做错了吗?

【问题讨论】:

你应该阅读variable scope with PHP 【参考方案1】:

我在这里做错了吗?

是的,你是:)

那些变量$database_MYDB, $MYDB 不在同一个scope。

您不能从函数内部访问在函数外部定义的变量。

【讨论】:

@user1032650:您可以将它们设为global,但不建议这样做。 我在 logging.php 中添加了这两行:global $database_NOTES;全球 $NOTES;现在工作正常。为什么不告诉我我做了什么? @user1032650:有关为什么 global 被认为是不良做法的更多信息,请参阅:***.com/questions/1557787/…

以上是关于require_once 问题,当调用另一个文件中包含的函数时的主要内容,如果未能解决你的问题,请参考以下文章

require与require_once有啥区别?PHP

当我在索引中调用它时,我的另一个需要一旦 php 页面出错

在方法中使用 require_once

「PHP」include()include_once()require()require_once()的用法及区别

无法让本地主机上的 ajax 调用 require_once 工作

require_once 问题