Return 功能不工作
Return in function not working
我正在使用 phpMQTT 从 MQTT 代理订阅数据。我已经基于它们的基本实现成功地设置了一个 pub/sub 例程。我可以在 procmsg() 函数中很好地回显信息。
但是,我需要获取接收到的数据并将其用于 运行 一些数据库操作等。我似乎无法访问主题或在 procmsg() 函数之外收到的消息。如下使用 return 似乎没有任何结果。
<?php
function procmsg($topic, $msg){
$value = $msg * 10;
return $value;
}
echo procmsg($topic, $msg);
echo $value;
?>
显然我做错了什么 - 但我如何获得这些值以便我可以在 procmsg() 之外使用它们?非常感谢。
我不知道那个库,但是在那个代码中
https://github.com/bluerhinos/phpMQTT/blob/master/phpMQTT.php ,
可能看看它是如何工作的。
在 :
$topics['edafdff398fb22847a2f98a15ca3186e/#'] = array("qos"=>0, "function"=>"procmsg");
您告诉它主题 "edafdff398fb22847a2f98a15ca3186e/#" 的服务质量 (qos) = 0,并且 "event" 称为 'procmsg'。
这就是你后来写这个的原因
function procmsg($topic,$msg){ ... }
所以在 while($mqtt->proc()) 中,这个函数每次都会检查是否有新消息(第 332 行调用消息函数,然后调用源代码的 procmsg)
这就是为什么您无法在代码中调用 procmsg 的原因
换句话说,也许在 procmsg 中你可以调用函数来处理消息 ej :
function procmsg($topic,$msg){
$value = $msg * 10;
doStuffWithDataAndDatabase($value);
}
请注意,您可以简单地更改函数的名称 ej :
$topics['edafdff398fb22847a2f98a15ca3186e/#'] = array("qos"=>0, "function"=>"onMessage");
然后:
function onMessage($topic,$msg){
$value = $msg * 10;
doStuffWithDataAndDatabase($value);
}
抱歉我的英语不好,希望对您有所帮助!
我正在使用 phpMQTT 从 MQTT 代理订阅数据。我已经基于它们的基本实现成功地设置了一个 pub/sub 例程。我可以在 procmsg() 函数中很好地回显信息。
但是,我需要获取接收到的数据并将其用于 运行 一些数据库操作等。我似乎无法访问主题或在 procmsg() 函数之外收到的消息。如下使用 return 似乎没有任何结果。
<?php
function procmsg($topic, $msg){
$value = $msg * 10;
return $value;
}
echo procmsg($topic, $msg);
echo $value;
?>
显然我做错了什么 - 但我如何获得这些值以便我可以在 procmsg() 之外使用它们?非常感谢。
我不知道那个库,但是在那个代码中 https://github.com/bluerhinos/phpMQTT/blob/master/phpMQTT.php , 可能看看它是如何工作的。
在 :
$topics['edafdff398fb22847a2f98a15ca3186e/#'] = array("qos"=>0, "function"=>"procmsg");
您告诉它主题 "edafdff398fb22847a2f98a15ca3186e/#" 的服务质量 (qos) = 0,并且 "event" 称为 'procmsg'。 这就是你后来写这个的原因
function procmsg($topic,$msg){ ... }
所以在 while($mqtt->proc()) 中,这个函数每次都会检查是否有新消息(第 332 行调用消息函数,然后调用源代码的 procmsg)
这就是为什么您无法在代码中调用 procmsg 的原因
换句话说,也许在 procmsg 中你可以调用函数来处理消息 ej :
function procmsg($topic,$msg){
$value = $msg * 10;
doStuffWithDataAndDatabase($value);
}
请注意,您可以简单地更改函数的名称 ej :
$topics['edafdff398fb22847a2f98a15ca3186e/#'] = array("qos"=>0, "function"=>"onMessage");
然后:
function onMessage($topic,$msg){
$value = $msg * 10;
doStuffWithDataAndDatabase($value);
}
抱歉我的英语不好,希望对您有所帮助!