mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-01 10:54:32 +02:00
parent
8c4c7f0953
commit
b858a05f15
@ -163,8 +163,8 @@ Operator | Examples (Result) | Description
|
|||||||
^ | 17 ^ 12 (29) | Bitwise XOR
|
^ | 17 ^ 12 (29) | Bitwise XOR
|
||||||
& | 7 & 3 (3) | Binary AND
|
& | 7 & 3 (3) | Binary AND
|
||||||
| | 2 | 3 (3) | Binary OR
|
| | 2 | 3 (3) | Binary OR
|
||||||
&& | true && false (false) | Logical AND
|
&& | true && false (false), 3 && 7 (7), 0 && 7 (0) | Logical AND
|
||||||
|| | true || false (true) | Logical OR
|
|| | true || false (true), 0 || 7 (7)| Logical OR
|
||||||
< | 3 < 5 (true) | Less than
|
< | 3 < 5 (true) | Less than
|
||||||
> | 3 > 5 (false) | Greater than
|
> | 3 > 5 (false) | Greater than
|
||||||
<= | 3 <= 3 (true) | Less than or equal
|
<= | 3 <= 3 (true) | Less than or equal
|
||||||
@ -432,9 +432,9 @@ UserGroup | user
|
|||||||
|
|
||||||
## <a id="boolean-values"></a> Boolean Values
|
## <a id="boolean-values"></a> Boolean Values
|
||||||
|
|
||||||
The `assign where` and `ignore where` statements, the `!`, `&&` and `||`
|
The `assign where`, `ignore where`, `if` and `while` statements, the `!` operator as
|
||||||
operators as well as the `bool()` function convert their arguments to a
|
well as the `bool()` function convert their arguments to a boolean value based on the
|
||||||
boolean value based on the following rules:
|
following rules:
|
||||||
|
|
||||||
Description | Example Value | Boolean Value
|
Description | Example Value | Boolean Value
|
||||||
---------------------|-------------------|--------------
|
---------------------|-------------------|--------------
|
||||||
|
@ -249,12 +249,22 @@ Value NotInExpression::DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const
|
|||||||
|
|
||||||
Value LogicalAndExpression::DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const
|
Value LogicalAndExpression::DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const
|
||||||
{
|
{
|
||||||
return m_Operand1->Evaluate(frame).ToBool() && m_Operand2->Evaluate(frame).ToBool();
|
Value left = m_Operand1->Evaluate(frame);
|
||||||
|
|
||||||
|
if (!left.ToBool())
|
||||||
|
return left;
|
||||||
|
else
|
||||||
|
return m_Operand2->Evaluate(frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
Value LogicalOrExpression::DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const
|
Value LogicalOrExpression::DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const
|
||||||
{
|
{
|
||||||
return m_Operand1->Evaluate(frame).ToBool() || m_Operand2->Evaluate(frame).ToBool();
|
Value left = m_Operand1->Evaluate(frame);
|
||||||
|
|
||||||
|
if (left.ToBool())
|
||||||
|
return left;
|
||||||
|
else
|
||||||
|
return m_Operand2->Evaluate(frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
Value FunctionCallExpression::DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const
|
Value FunctionCallExpression::DoEvaluate(ScriptFrame& frame, DebugHint *dhint) const
|
||||||
|
Loading…
x
Reference in New Issue
Block a user