Php 在函数中使用包含文件的变量

Php 在函数中使用包含文件的变量,php,function,variables,include,global,Php,Function,Variables,Include,Global,我有个问题 我有3个文件,它们是: apikey.php <?php define('API_KEY', 'xxxxxx'); ?> core.php login.php 因此,正如注释所说,$apikey被返回为NULL 但是在函数GetUserData之外使用它,它会正常工作 有什么想法吗?您还需要将$apikey赋予该函数 function GetUserData($id, $apikey) { 您可以使用$GLOBALS变量 <?php function

我有个问题

我有3个文件,它们是:

apikey.php

<?php
define('API_KEY', 'xxxxxx');
?>

core.php


login.php


因此,正如注释所说,$apikey被返回为NULL

但是在函数GetUserData之外使用它,它会正常工作


有什么想法吗?

您还需要将$apikey赋予该函数

function GetUserData($id, $apikey) {

您可以使用$GLOBALS变量

<?php
function GetUserData($id) {

    ...        

    return $GLOBALS['apiKey'];
}
?>

或者也可以在apikey.php中将其定义为常量

<?php
define('API_KEY', 'xxxxxx');
?>

尝试在
apikey.php
中声明全局变量,然后定义它

global $apikey;
$apikey = 'xxxx';
然而,使用一个全球性的系统是你所需要的吗?
考虑将其作为一个参数传递。

如果没有它,难道不可能吗?因为我想在一个文件中只包含一次apikey.php。如果你知道我的意思,我同意这个答案。这是使用globals的一个很好的替代方法。你可以像@noia_0328那样做,但是使用$\u globals会有一点安全风险。你可以做的另一件事是将apikey.php直接包含到函数中,但你不想这样做。floube查看您的include您的login.php中包含core.php,core.php中包含apikey.php,因此您的login.php中已经包含了apikey.php。这应该可以正常工作。一步一步地验证$apikey是否在某个地方被覆盖或取消设置。您发布的代码应该可以正常工作……已解决。但是作为参数传递对我来说不是很好,因为我在不同的文件中多次使用这个函数。
<?php
define('API_KEY', 'xxxxxx');
?>
global $apikey;
$apikey = 'xxxx';