在一个函数中创建一个变量,并在PHP中将其传递给另一个函数

时间:2013-02-20 15:25:59

标签: php function variables

首先我要说我花了一天时间阅读有关此主题的三篇谷歌文章,并研究了这个页面here

好的,这是我的困境。我有两个功能。两者都通过AJAX调用。第一个为变量赋值,第二个使用该变量。这两个功能都由两个单独的按钮触发,需要保持这种状态。 AJAX和函数的触发工作正常,但变量未通过。这是我的代码:

if( $_REQUEST["subjectLine"] ) //initiate first function
{
    $CID = wpCreateChimpCampaign();
    echo $CID; //this works
}

if( $_REQUEST["testEmails"] ) //initiate second function
{
    echo $CID; //does not return anything but should contain "apple"
    wpSendChimpTest($CID);
} 


function wpCreateChimpCampaign () //first function
{
    $CID = "apple";
    return $CID;    
}

function wpSendChimpTest ($CID) //second function
{
    echo $CID; //does not return anything but should contain "apple"
}

我愿意上课,但我也没有太多运气。我希望不使用类来解决这个问题。感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

如果要对此文件进行2次单独调用,则可能有助于将其视为2个完全独立的文件中的2个函数。虽然它们存在于同一个PHP文件中,因为它们在不同的调用中使用调用,但它们不保留变量$ CID的值。文件运行后,该变量将被销毁,再次调用该文件时,该值将再次为空。

所以你需要在调用之间存储该变量。您可以将其存储在数据库中,也可以将其存储在会话变量中。

所以调用session_start();在文件的开头,然后使用$ _SESSION ['CID'];而不是使用$ CID;

答案 1 :(得分:0)

我不确定阻碍的位置。您拥有的代码将起作用:

$CID = wpCreateChimpCampaign(); // returns 'apple'
wpSendChimpTest($CID);          // echos 'apple'

答案 2 :(得分:0)

代码看起来很好,但您确定所有要求都得到满足,因此两个函数都可以执行吗?

换句话说,您是否为$_REQUEST["subjectLine"]$_REQUEST["testEmails"]提供了价值?