protected function dispatchPsHandling(&$sb, array &$params)
    {
        switch ($this->comparison) {
            case Criteria::CUSTOM:
                // custom expression with no parameter binding
                $this->appendCustomToPs($sb, $params);
                break;
            case Criteria::RAW:
                // custom expression with a typed parameter binding
                $this->appendRawToPs($sb, $params);
                break;
            case Criteria::IN:
            case Criteria::NOT_IN:
                // table.column IN (?, ?) or table.column NOT IN (?, ?)
                $this->appendInToPs($sb, $params);
                break;
            case Criteria::LIKE:
            case Criteria::NOT_LIKE:
            case Criteria::ILIKE:
            case Criteria::NOT_ILIKE:
                // table.column LIKE ? or table.column NOT LIKE ?  (or ILIKE for Postgres)
                $this->appendLikeToPs($sb, $params);
                break;
            default:
                // table.column = ? or table.column >= ? etc. (traditional expressions, the default)
                $this->appendBasicToPs($sb, $params);
        }
    }
protected function dispatchPsHandling(&$sb, array &$params)
    {
        switch ($this->comparison) {
            case Criteria::CUSTOM:
                // custom expression with no parameter binding
                $this->appendCustomToPs($sb, $params);
                break;
            case Criteria::RAW:
                // custom expression with a typed parameter binding
                $this->appendRawToPs($sb, $params);
                break;
            case Criteria::IN:
            case Criteria::NOT_IN:
                // table.column IN (?, ?) or table.column NOT IN (?, ?)
                $this->appendInToPs($sb, $params);
                break;
            case Criteria::LIKE:
            case Criteria::NOT_LIKE:
            case Criteria::ILIKE:
            case Criteria::NOT_ILIKE:
                // table.column LIKE ? or table.column NOT LIKE ?  (or ILIKE for Postgres)
                $this->appendLikeToPs($sb, $params);
                break;
            default:
                // table.column = ? or table.column >= ? etc. (traditional expressions, the default)
                $this->appendBasicToPs($sb, $params);
        }
    }
protected function dispatchPsHandling ( & $ sb , array & $ params ) { switch ( $ this -> comparison ) { case Criteria :: CUSTOM : // custom expression with no parameter binding $ this -> appendCustomToPs ( $ sb , $ params ) ; break ; case Criteria :: RAW : // custom expression with a typed parameter binding $ this -> appendRawToPs ( $ sb , $ params ) ; break ; case Criteria :: IN : case Criteria :: NOT_IN : // table.column IN (?, ?) or table.column NOT IN (?, ?) $ this -> appendInToPs ( $ sb , $ params ) ; break ; case Criteria :: LIKE : case Criteria :: NOT_LIKE : case Criteria :: ILIKE : case Criteria :: NOT_ILIKE : // table.column LIKE ? or table.column NOT LIKE ?  (or ILIKE for Postgres) $ this -> appendLikeToPs ( $ sb , $ params ) ; break ; default : // table.column = ? or table.column >= ? etc. (traditional expressions, the default) $ this -> appendBasicToPs ( $ sb , $ params ) ; } }
Figure out which Criterion method to use
to build the prepared statement and parameters using to the Criterion comparison
and call it to append the prepared statement and the parameters of the current clause

@param string &$sb    The string that will receive the Prepared Statement
@param array  $params A list to which Prepared Statement parameters will be appended
Figure out which Criterion method to use to build the prepared statement and parameters using to the Criterion comparison and call it to append the prepared statement and the parameters of the current clause