*/
const INTERPOLATE_AUTO = 'auto';
+ /**
+ * @var mixed
+ */
protected $mode = NULL;
- protected $params = array();
+ /**
+ * @var array
+ */
+ protected $params = [];
- // Public to work-around PHP 5.3 limit.
+ /**
+ * Public to work-around PHP 5.3 limit.
+ * @var bool
+ */
public $strict = NULL;
/**
$select = $this;
return preg_replace_callback('/([#!@])([a-zA-Z0-9_]+)/', function($m) use ($select, $args) {
- if (isset($args[$m[2]])) {
+ if (array_key_exists($m[2], $args)) {
$values = $args[$m[2]];
}
- elseif (isset($args[$m[1] . $m[2]])) {
+ elseif (array_key_exists($m[1] . $m[2], $args)) {
// Backward compat. Keys in $args look like "#myNumber" or "@myString".
$values = $args[$m[1] . $m[2]];
}
// Unrecognized variables are ignored. Mitigate risk of accidents.
return $m[0];
}
- $values = is_array($values) ? $values : array($values);
+ $values = is_array($values) ? $values : [$values];
switch ($m[1]) {
case '@':
- $parts = array_map(array($select, 'escapeString'), $values);
+ $parts = array_map([$select, 'escapeString'], $values);
return implode(', ', $parts);
// TODO: ensure all uses of this un-escaped literal are safe