从函数中获取变量值


Getting Vars Value From Function

我正在使用这个函数;

function forums_fid()
{
    if (!defined('FORUMS_FID'))
    {
        $maktaba_fid = '14';
        $ask_question_fid = '9';
    }
    define('FORUMS_FID', 1);
}

我想在另一个函数中使用变量的值,因此我尝试使用以下代码;

forums_fid();
$maktaba = '<a href="www.domain.com/forumdisplay.php?fid='.$maktaba_fid.'"><img src="./images/maktaba.png" alt="" title=""></a>';
$ask_question = '<a href="www.domain.com/newthread.php?fid='.$ask_question_fid.'"><img src="./images/ask-question.png" alt="" title=""></a>';

但不幸的是,在第二段代码中变量是空的。

请帮忙!

忘掉我之前说的话吧。您可以做的是定义两个空变量(NULL),并将它们声明为函数中的全局变量,用您想要的任何内容覆盖它们,然后使用它们。顺便说一下,你必须把define()放在if子句中,否则PHP会抛出一个错误。

function forums_fid()
{
    global $maktaba_fid, $ask_question_fid;
    if (!defined('FORUMS_FID'))
    {
        define('FORUMS_FID', 1);
        $maktaba_fid = '14';
        $ask_question_fid = '9';
    }
}
$maktaba_fid = NULL;
$ask_question_fid = NULL;
forums_fid();
$maktaba = '<a href="www.domain.com/forumdisplay.php?fid='.$maktaba_fid.'"><img src="./images/maktaba.png" alt="" title=""></a>';
$ask_question = '<a href="www.domain.com/newthread.php?fid='.$ask_question_fid.'"><img src="./images/ask-question.png" alt="" title=""></a>';

这是一种方法。更好的方法是实际返回值(例如作为数组)。

function forums_fid()
{
    if (!defined('FORUMS_FID'))
    {
        define('FORUMS_FID', 1);
        return array('maktaba_fid' => 14, 'ask_question_fid' => 9);
    }
}
$return = forums_fid();
$maktaba = '<a href="www.domain.com/forumdisplay.php?fid='.$return['maktaba_fid'].'"><img src="./images/maktaba.png" alt="" title=""></a>';
$ask_question = '<a href="www.domain.com/newthread.php?fid='.$return['ask_question_fid'].'"><img src="./images/ask-question.png" alt="" title=""></a>';

try this

function forums_fid()
{
    global $maktaba_fid;
    global $ask_question_fid;
    if (!defined('FORUMS_FID'))
    {
        $maktaba_fid = '14';
        $ask_question_fid = '9';
        define('FORUMS_FID', 1);
    }
}

我推荐 $GLOBALS 超级变量。

function forums_fid()
{
    if (!defined('FORUMS_FID'))
    {
        $GLOBALS['maktaba_fid'] = '14';
        $GLOBALS['ask_question_fid'] = '9';
    }
    define('FORUMS_FID', 1);
}
forums_fid();
echo $GLOBALS['maktaba_fid'].PHP_EOL;
echo $GLOBALS['ask_question_fid'];


演示:

http://3v4l.org/k7TVA


文档:

http://php.net/manual/en/language.variables.scope.php