用于mysql查询的Zend PHP类变量保留

用于mysql查询的Zend PHP类变量保留,php,mysql,actionscript-3,zend-framework,Php,Mysql,Actionscript 3,Zend Framework,我有一个flash应用程序,它使用一个php文件从数据库中检索记录(使用Zend框架)。当应用程序第一次启动时,我调用php来设置一个类变量,以便将来对数据库的所有请求都将使用该变量根据其值选择记录。下面是课程的开始: class MyClass { private $animal = ""; public function setAnimal($anim) { $this->animal = $anim; echo($this

我有一个flash应用程序,它使用一个php文件从数据库中检索记录(使用Zend框架)。当应用程序第一次启动时,我调用php来设置一个类变量,以便将来对数据库的所有请求都将使用该变量根据其值选择记录。下面是课程的开始:

class MyClass
{   

    private $animal = "";

    public function setAnimal($anim) {
         $this->animal = $anim;
         echo($this->animal); //this correctly prints the variable I passed in
    }
后来,根据用户输入,我调用了该类中的另一个方法,但这就好像类变量$ANALIC被遗忘了一样,因为它在随后访问该类时不再具有值:

public function getAnimals()
    {
        echo('getAnimals: ');
        echo($this->animal); //this prints nothing - as if it doesn't know what "animal" is

        $result = mysql_query("SELECT * FROM animals WHERE animal='$this->animal'"); //and therefore this query doesn't work
        $t = array();

        while($row = mysql_fetch_assoc($result))
        {
            array_push($t, $row);
        }

        return $t;
    }

所以我的问题是,我如何让一个PHP类变量持久化,以便我可以设置它一次,并且在应用程序的生命周期中我可以随时访问它?

我可能误解了您的问题,但听起来好像您首先从Flash调用了一个PHP脚本,稍后,您将从Flash对PHP脚本进行第二次调用,并期望设置某个变量

如果是这样,那也是问题所在。PHP是无状态的。每次访问PHP脚本(即请求URL)时,都会从头开始重新创建PHP环境。一旦请求完成并且PHP脚本完成执行,环境就会被破坏(即web服务器线程关闭,PHP环境就会丢失)。您在第一个请求中设置或执行的任何操作在第二个请求中都不存在


如果希望信息持久化,可以使用会话或cookie。由于您使用的是Flash,这可能是最好的方法。第一次调用脚本时,生成会话令牌并将其与响应一起传递回flash。在随后的所有调用中,您的闪存应该提供会话令牌,并且您可以存储/获取您需要的任何状态变量。

是的,这正是我所担心的。看来我得研究一下会话和flash。谢谢