监视PHP变量的值变化

监视PHP变量的值变化,php,Php,实际上,我正在尝试监视一个PHP变量(可能作为一个单独的线程,但在PHP中不可能),并在变量的值发生变化时启动一个PHP函数 例如:让我们取一个变量$_GLOBALS['foo']=1 如果在代码中的任何一点,$_GLOBALS['foo']的值更改为其他值,我想立即启动一个PHP函数 变量可以在循环或函数中的任何位置,等等 为什么要这样做:我有一个变量,它将上次发生的错误存储为文本。如果变量的值从“”更改为其他值,我想触发一个错误。我的逻辑可能有点奇怪,但这就是我想做的 提前准备好 编辑:我尝

实际上,我正在尝试监视一个PHP变量(可能作为一个单独的线程,但在PHP中不可能),并在变量的值发生变化时启动一个PHP函数

例如:让我们取一个变量$_GLOBALS['foo']=1

如果在代码中的任何一点,$_GLOBALS['foo']的值更改为其他值,我想立即启动一个PHP函数

变量可以在循环或函数中的任何位置,等等

为什么要这样做:我有一个变量,它将上次发生的错误存储为文本。如果变量的值从“”更改为其他值,我想触发一个错误。我的逻辑可能有点奇怪,但这就是我想做的

提前准备好

编辑:我尝试了:但似乎没有解决问题

代码(认为这可以解决您对我的问题的一些疑问):

public function addtag($tagarray,$uid,$tagtype="1")
{
    $dbobj=new dboperations();
    $uiobj=new uifriend();
    $tagid=$uiobj->randomstring(30,DB_SOCIAL,SOCIAL_TAG,tag_tagid);
    $c=0;
    foreach($tagarray as $tags)
    {
        $c++;
        $tagname=$tags["tagname"];
        $taguid=$tags["tagid"];
        $dbobj->dbinsert("INSERT INTO ".SOCIAL_TAG." (".tag_tagid.",".tag_fuid.",".tag_tuid.",".tag_tagname.",".tag_tagtype.") VALUES
                ('$tagid','$uid','$taguid','$tagname','$tagtype')",DB_SOCIAL);
    }
    if($c==0)
    {
        $lasterror="No tags were added";return "";
    }
    else
    {
        return $tagid;
    }
}
在这里,如果我调用一个错误处理函数而不是监视变量,在我的情况下,这是不可取的,因为错误处理函数可以执行任何操作,如发出警报和重定向到页面或任何类似的操作

我问这个问题的原因是,我想如果脚本没有达到底线怎么办 返回“”; 这将影响项目的工作流程。这就是我担心的


我刚才提到的变量是$lasterror,我有许多这样的函数,其中使用了$lasterror。

在PHP中没有内置的方法来实现这一点,也没有简单的方法来添加它。不管怎么说,这种语言的工作方式让人感觉不太对劲

您可以构建一个处理错误的自定义函数,或者使用


另一种接近您想要做的错误处理方法(我想)是。

我看到了这一点,所以我构建了这个:


应该可以解决您的问题。

谷歌快速搜索了一下,不确定这对您是否有好处,但请通读一遍-这看起来很相似,但他们没有得到答案。@francisco.preller-Thanx获得快速回复。我已经看过了,但在这种情况下,我们必须手动触发事件,而不是自动触发。我想我最大的问题是,你到底想什么时候检查这个?在页面加载时检查$lasterror是否不合理?或者,如果错误是在创建页面时产生的,则在发送视图之前,将其作为最后一站进行检查。@vignesh“自动”是什么意思?除非您在中对行为进行编程,否则不会发生这种情况。您所描述的是需要一个事件系统。同意-最好的方法是使用适当的OOP,然后记录对变量.Thanx的更改/访问,以便快速回复。我可以这样做,但我认为这可能会影响项目的工作流程。如果没有,那么这就不是问题。@Pekka:我认为你是对的。我最好将我的工作流程改为使用异常,因为在PHP中没有其他方法可以做到这一点,因为我现在做了更多的研究。Thanx很多。。