A filter expression is written in Fizzle, a grammar inspired by CSS selectors. It has the form "[" [] "]" and supports the following operators: = Strict equality of value and operand != Strict inequality of value and operand < Value is less than operand <= Value is less than or equal to operand > Value is greater than operand >= Value is greater than or equal to operand $= Value ends with operand (string-based) ^= Value starts with operand (string-based) *= Value contains operand (string-based) instanceof Checks if the value is an instance of the operand !instanceof Checks if the value is not an instance of the operand For the latter the behavior is as follows: if the operand is one of the strings object, array, int(eger), float, double, bool(ean) or string the value is checked for being of the specified type. For any other strings the value is used as classname with the PHP instanceof operation to check if the value matches.
Наследование: extends Neos\Eel\FlowQuery\Operations\AbstractOperation
 /**
  * {@inheritdoc}
  *
  * @param mixed $value
  * @param string $operator
  * @param mixed $operand
  * @return boolean
  */
 protected function evaluateOperator($value, $operator, $operand)
 {
     if ($operator === 'instanceof' && $value instanceof NodeInterface) {
         if ($this->operandIsSimpleType($operand)) {
             return $this->handleSimpleTypeOperand($operand, $value);
         } elseif ($operand === NodeInterface::class || $operand === Node::class) {
             return true;
         } else {
             $isOfType = $value->getNodeType()->isOfType($operand[0] === '!' ? substr($operand, 1) : $operand);
             return $operand[0] === '!' ? $isOfType === false : $isOfType;
         }
     } elseif ($operator === '!instanceof' && $value instanceof NodeInterface) {
         return !$this->evaluateOperator($value, 'instanceof', $operand);
     }
     return parent::evaluateOperator($value, $operator, $operand);
 }