# SQLArray.class.php

Go to the documentation of this file.

    00001 <?php
    00002 /***************************************************************************
    00003  *   Copyright (C) 2005-2007 by Konstantin V. Arkhipov                     *
    00004  *                                                                         *
    00005  *   This program is free software; you can redistribute it and/or modify  *
    00006  *   it under the terms of the GNU Lesser General Public License as        *
    00007  *   published by the Free Software Foundation; either version 3 of the    *
    00008  *   License, or (at your option) any later version.                       *
    00009  *                                                                         *
    00010  ***************************************************************************/
    00011
    00017     final class SQLArray implements DialectString
    00018     {
    00019         private $array = array();
    00020
    00024         public static function create($array)
    00025         {
    00026             return new self($array);
    00027         }
    00028
    00029         public function __construct($array)
    00030         {
    00031             $this->array = $array;
    00032         }
    00033
    00034         public function getArray()
    00035         {
    00036             return $this->array;
    00037         }
    00038
    00039         public function toDialectString(Dialect $dialect)
    00040         {
    00041             $array = $this->array;
    00042
    00043             if (is_array($array)) {
    00044                 $quoted = array();
    00045
    00046                 foreach ($array as $item)
    00047                     $quoted[] = $dialect->valueToString($item);
    00048
    00049                 $value = implode(', ', $quoted);
    00050             } else
    00051                 $value = $dialect->quoteValue($array);
    00052
    00053             return "({$value})";
    00054         }
    00055     }
    00056 ?>