Отслеживание изменения значения переменной PHP



На самом деле я пытаюсь отслеживать переменную PHP (может быть, как отдельный поток, но не возможно в PHP) и запускать функцию PHP всякий раз, когда значение переменной изменяется.



Например: возьмем переменную $_GLOBALS ['foo']=1;



Если в какой-то момент в коде значение $_GLOBALS['foo'] изменится на что-то другое, я хочу немедленно запустить функцию PHP.



Переменная может находиться в любом месте внутри цикла или в функции и т. д.

Почему я хочу этого : у меня есть переменная, в которой хранится последняя ошибка, возникшая в виде текста. Если значение переменной изменяется с "" на что-то другое, я хочу вызвать ошибку. Моя логика может показаться немного странной, но это то, что я хотел бы сделать.



Thanx заранее.



Edit: я пробовал: Как использовать мониторы в 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;
}
}


Здесь, Если я вызову функцию обработки ошибок вместо мониторинга переменной, это не будет целесообразно в моем случае, так как функция обработки ошибок может выполнять любую операцию, например, выдавать предупреждение и перенаправлять на страницу или любую аналогичную операцию.



Я задал этот вопрос потому, что подумал, что если скрипт не дойдет до строки
вернуть "";
Это повлияет на рабочий процесс проекта. Вот что меня беспокоит.



И переменная, о которой я говорил примерно это $lasterror, и у меня есть много функций, подобных этой, где используется $lasterror.

653   2  
PHP

2 ответов:

В PHP нет встроенного способа сделать это, и нет простого способа добавить его. В любом случае, это не совсем правильно для того, как работает язык.

Вместо установки переменной можно построить пользовательскую функцию, которая обрабатывает ошибку , или использовать встроенную в PHP функцию обработки ошибок с помощью пользовательского обработчика ошибок .

Другой метод обработки ошибок, который приближается к тому, что вы хотите сделать (я думаю), - это исключения.

Я видел это, поэтому я построил это:

Https://github.com/leedavis81/vent

Должен решить вашу проблему.

Comments

    Ничего не найдено.