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 /* $Id: SQLArray.class.php 4687 2007-12-09 18:57:18Z voxus $ */ 00012 00018 final class SQLArray implements DialectString 00019 { 00020 private $array = array(); 00021 00025 public static function create($array) 00026 { 00027 return new self($array); 00028 } 00029 00030 public function __construct($array) 00031 { 00032 $this->array = $array; 00033 } 00034 00035 public function getArray() 00036 { 00037 return $this->array; 00038 } 00039 00040 public function toDialectString(Dialect $dialect) 00041 { 00042 $array = $this->array; 00043 00044 if (is_array($array)) { 00045 $quoted = array(); 00046 00047 foreach ($array as $item) 00048 $quoted[] = $dialect->valueToString($item); 00049 00050 $value = implode(', ', $quoted); 00051 } else 00052 $value = $dialect->quoteValue($array); 00053 00054 return "({$value})"; 00055 } 00056 } 00057 ?>