私は実際に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 が使用されているこのような多くの関数があります。