我正在使用这个函数;
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'];
演示:
文档: