Символы '?' и '!'

Няша ррр

Используются ли где? Вопросы в prepared statements, а восклицательные?
/**
 * Возвращает подготовленную строку.
 * 
 * ! => значение приводится к типу int<br>
 * ? => экранируемое значение
 * 
 * <code>
 * $where = array('WHERE age > ! AND age < ! AND sex = ?', 'foo', '18', 'male');
 * $query = new SQLBuilder($db);
 * echo $query->prepare($where);
 * </code>
 * 
 * Выведет:
 * WHERE age > 0 AND age < 18 AND sex = 'male'
 *
 * @param array $params
 * @return string 
 */
 public function prepare(array $params) {
 $i = 0;
 $j = 1;
 $k = strlen($params[0]);
 $query = '';
 
 for ($l = 0; $l < $k; ++$l) {
 $matched = true;

 switch ($params[0][$l]) {
 case '!':
 $value = intval($params[$j]);
 break;

 case '?':
 $value = $this->_db->quote($params[$j]);
 break;

 default:
 $matched = false;
 }

 if ($matched) {
 $query .= substr($params[0], $i, $l - $i) . $value;
 $i = $l + 1;
 ++$j;
 }
 }
 
 return $query;
 }
2 ответа

Няша ррр

miksoft, ясно