我试图理解下面的代码,但我对&&操作符的使用感到困惑.
请&&在以下代码中解释操作的目的
function getErrors($autoClean=TRUE) {
$retVal = $this->getErrorMessages();
$autoClean && $this->unsetErrorMessages();
return $retVal;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个回答问题的函数:如果你开始计数a并停止计数b,则c在该范围内(也就是c介于a和之间b).
通常a < c && c < b就足够了,但我是模块化算法:
逆时针正在增加.
绿色:是c的值,其中算法应指示true(其中c在a和b之间)
蓝色:是c的值,其中算法应该指示false(其中c不在a和b之间)(这恰好与c在b和a之间的位置相同)
简单的a < c && c < b失败的范围a和b超过0 的范围.
例如,假设A = 300和B = 45.如果C是10,则该函数将返回真:300,301,302 ... 359,0,1,2,3 ... 8,9,10,11 ,12 ... 43,44,45.因此,在360中,10在300和45之间.
最终,我想要确定的是一个色调是否在两个其他色调之间,其中色调是以色轮周围的度数指定的(这是一个mod 360系统).如果答案是以mod为单位的话会很好,所以它会解决一般情况而不是特定于我的问题.
我编写了一个使用Web套接字的Web应用程序.这个想法是我的应用程序在启动时尝试自动连接到最近连接到主机.如果它无法建立与其中任何一个的连接,则它会将用户定向到连接部分并要求他们手动建立连接.
所有这一切都有效.总之,我按顺序尝试每个已知主机,如果200ms后它没有连接(`readyState!= 1),它会尝试下一个.所有这些主机应该在局域网上,所以200ms工作非常可靠.如果列表中的最后一个也失败,那么Web将打开一个模式,指示用户手动键入主机.
问题是,通过尝试自动连接,我必须为我尝试过的主机创建websockets,它会向控制台输出如下所示的错误消息:
与'ws:// lightmate:8080 /'的WebSocket连接失败:连接建立错误:net :: ERR_NAME_NOT_RESOLVED
与'ws:// localhost:8080 /'的WebSocket连接失败:连接建立错误:net :: ERR_CONNECTION_REFUSED
虽然不是任何方式致命的缺陷,但这是不雅观的,妨碍了我的调试.
我试图通过new WebSocket(address)使用try/catch块包围调用来删除它,并且错误仍然通过,我也尝试设置一个onerror处理程序,希望这会抑制错误消息.什么都没有用.
connect: function(){
var fulladdr = completeServerAddress(address);
try {
connection = new WebSocket(fulladdr);
connection.suppressErrorsBecauseOfAutoConnection = suppressErrorsBecauseOfAutoConnection; //Store this module-scoped variable in connection, so if the module changes suppression state, this connection won't.
} catch (e){
//Make sure we don't try to send anything down this dead websocket
connection = false;
return false;
}
connection.binaryType = "arraybuffer";
connection.onerror = function(){
if …Run Code Online (Sandbox Code Playgroud)