/** * Initialize operator code constructor with 1 parameter (unary). * * @param ezcTemplateAstNode $parameter */ public function __construct(ezcTemplateAstNode $parameter = null) { parent::__construct(self::OPERATOR_TYPE_UNARY, false); if ($parameter) { $this->appendParameter($parameter); } }
/** * Constructs a new ezcTemplateBinaryOperatorAstNode * * @param ezcTemplateAstNode $parameter1 * @param ezcTemplateAstNode $parameter2 */ public function __construct($parameter1 = null, $parameter2 = null) { parent::__construct(self::OPERATOR_TYPE_BINARY); if ($parameter1 !== null && $parameter2 !== null) { $this->appendParameter($parameter1); $this->appendParameter($parameter2); } elseif ($parameter1 != null) { throw new ezcTemplateInternalException("The binary operator expects zero or two parameters."); } }
/** * Initialize operator code constructor with 2 parameters (binary). * * @param ezcTemplateAstNode $array * @param array(ezcTemplateAstNode) $fetches */ public function __construct(ezcTemplateAstNode $array = null, array $fetches = null) { parent::__construct(self::OPERATOR_TYPE_BINARY); // This is a special binary operator since it allows more than two parameters. // Each extra parameter will be considered an additional array lookup $this->maxParameterCount = false; if ($array !== null) { $this->appendParameter($array); if ($fetches !== null) { foreach ($fetches as $fetch) { $this->appendParameter($fetch); } } } }