监视PHP变量以获得值的更改

Vig*_*.V. 5 php

我实际上是在尝试监视一个PHP变量(可能是一个单独的线程但在PHP中不可能),并且只要变量的值发生变化就会触发PHP函数.

例如:让变量$ _GLOBALS ['foo'] = 1;

如果在代码中的任何一点,$ _GLOBALS ['foo']的值变为其他东西,我想立即触发PHP函数.

变量可以是循环内部或函数中的任何位置.

为什么我想要这个:我有一个变量存储作为文本出现的最后一个错误.如果变量的值从""更改为其他值,我想触发错误.我的LOGIC可能看起来有点奇怪,但这就是我想做的事情.

Thanx提前.

编辑:我试过:如何在PHP中使用监视器?一个如何使用多线程的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;
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,如果我调用错误处理函数而不是监视变量,在我的情况下它是不可取的,因为错误处理函数可以执行任何操作,如给出警报和重定向到页面或任何类似的操作.

我问这个问题的原因,我想如果脚本没有到达行返回""; 这会影响项目的工作流程.这就是我担心的事情.

我正在讨论的变量是$ lasterror,我有很多这样的函数,其中使用$ lasterror.

Pek*_*ica 5

在PHP中没有内置的方法来实现这一点,并且没有简单的方法来添加它.无论如何,语言的工作方式并不合适.

您可以构建一个处理错误的自定义函数,而不是设置变量,或者使用自定义错误处理程序使用PHP的内置错误处理功能.

另一种接近你想做的错误处理方法(我认为)是例外.

  • 同意 - 最好的方法是使用适当的OOP然后记录对变量的更改/访问. (2认同)

Lee*_*vis 5

我看到了这个,所以我建造了这个:

https://github.com/leedavis81/vent

应该解决你的问题.