我实际上是在尝试监视一个 PHP 变量(可能是一个单独的线程,但在 PHP 中是不可能的),并在变量的值发生变化时触发一个 PHP 函数。
例如:让我们取一个变量 $_GLOBALS['foo']=1;
如果在代码中的任何位置,$_GLOBALS['foo'] 的值更改为其他值,我想立即触发 PHP 函数。
变量可以在循环或函数等的任何地方。
为什么我想要这个:我有一个变量,它将最后发生的错误存储为文本。如果变量的值从“”变为其他值,我想触发一个错误。我的逻辑可能看起来有点奇怪,但这是我想做的。
提前谢谢。
编辑:我试过:如何在 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;
}
}
在这里,如果我调用错误处理函数而不是监视变量,则在我的情况下不建议这样做,因为错误处理函数可能会执行任何操作,例如发出警报并重定向到页面或任何类似操作。
我问了这个问题原因,我想如果脚本没有到达行 return ""; 它会影响项目的工作流程。这就是我担心的。
我所说的变量是 $lasterror,我有很多这样的函数,其中使用了 $lasterror。