protected function _addExpressions($conditions, $values, $types)
    {
        $rawValues = array_values($values);
        $keyValues = array_keys($values);

        foreach ($conditions as $k => $c) {
            $numericKey = is_numeric($k);

            if ($numericKey && empty($c)) {
                continue;
            }

            if (!$c instanceof ExpressionInterface) {
                continue;
            }

            $this->_conditions[] = $c;
            $value = isset($rawValues[$k]) ? $rawValues[$k] : 1;

            if ($value === 'literal') {
                $value = $keyValues[$k];
                $this->_values[] = $value;
                continue;
            }

            if ($value === 'identifier') {
                $value = new IdentifierExpression($keyValues[$k]);
                $this->_values[] = $value;
                continue;
            }

            $type = isset($types[$k]) ? $types[$k] : null;

            if ($type !== null && !$value instanceof ExpressionInterface) {
                $value = $this->_castToExpression($value, $type);
            }

            if ($value instanceof ExpressionInterface) {
                $this->_values[] = $value;
                continue;
            }

            $this->_values[] = ['value' => $value, 'type' => $type];
        }
    }
protected function _addExpressions($conditions, $values, $types)
    {
        $rawValues = array_values($values);
        $keyValues = array_keys($values);

        foreach ($conditions as $k => $c) {
            $numericKey = is_numeric($k);

            if ($numericKey && empty($c)) {
                continue;
            }

            if (!$c instanceof ExpressionInterface) {
                continue;
            }

            $this->_conditions[] = $c;
            $value = isset($rawValues[$k]) ? $rawValues[$k] : 1;

            if ($value === 'literal') {
                $value = $keyValues[$k];
                $this->_values[] = $value;
                continue;
            }

            if ($value === 'identifier') {
                $value = new IdentifierExpression($keyValues[$k]);
                $this->_values[] = $value;
                continue;
            }

            $type = isset($types[$k]) ? $types[$k] : null;

            if ($type !== null && !$value instanceof ExpressionInterface) {
                $value = $this->_castToExpression($value, $type);
            }

            if ($value instanceof ExpressionInterface) {
                $this->_values[] = $value;
                continue;
            }

            $this->_values[] = ['value' => $value, 'type' => $type];
        }
    }
protected function _addExpressions ( $ conditions , $ values , $ types ) { $ rawValues = array_values ( $ values ) ; $ keyValues = array_keys ( $ values ) ; foreach ( $ conditions as $ k => $ c ) { $ numericKey = is_numeric ( $ k ) ; if ( $ numericKey && empty ( $ c ) ) { continue ; } if ( ! $ c instanceof ExpressionInterface ) { continue ; } $ this -> _conditions [ ] = $ c ; $ value = isset ( $ rawValues [ $ k ] ) ? $ rawValues [ $ k ] : 1 ; if ( $ value === 'literal' ) { $ value = $ keyValues [ $ k ] ; $ this -> _values [ ] = $ value ; continue ; } if ( $ value === 'identifier' ) { $ value = new IdentifierExpression ( $ keyValues [ $ k ] ) ; $ this -> _values [ ] = $ value ; continue ; } $ type = isset ( $ types [ $ k ] ) ? $ types [ $ k ] : null ; if ( $ type !== null && ! $ value instanceof ExpressionInterface ) { $ value = $ this -> _castToExpression ( $ value , $ type ) ; } if ( $ value instanceof ExpressionInterface ) { $ this -> _values [ ] = $ value ; continue ; } $ this -> _values [ ] = [ 'value' => $ value , 'type' => $ type ] ; } }
Iterates over the passed in conditions and ensures that there is a matching true value for each.
If no matching true value, then it is defaulted to '1'.

@param array|\Cake\Database\ExpressionInterface $conditions Must be a ExpressionInterface instance, or an array of ExpressionInterface instances.
@param array|\Cake\Database\ExpressionInterface $values associative array of values of each condition
@param array $types associative array of types to be associated with the values

@return void
Iterates over the passed in conditions and ensures that there is a matching true value for each . If no matching true value then it is defaulted to 1 .