public static function BindVariable($value) { $bind_var = new \query\BindVariable(); if (is_null($value)) { $bind_var->setType(\query\BindVariable\Type::TYPE_NULL); } else { if (is_string($value)) { $bind_var->setType(\query\BindVariable\Type::TYPE_BYTES); $bind_var->setValueBytes($value); } else { if (is_int($value)) { $bind_var->setType(\query\BindVariable\Type::TYPE_INT); $bind_var->setValueInt($value); } else { if (is_float($value)) { $bind_var->setType(\query\BindVariable\Type::TYPE_FLOAT); $bind_var->setValueFloat($value); } else { if (is_object($value)) { switch (get_class($value)) { case 'VTUnsignedInt': $bind_var->setType(\query\BindVariable\Type::TYPE_UINT); $bind_var->setValueUint($value->value); break; default: throw new VTException('Unknown bind variable class: ' . get_class($value)); } } else { if (is_array($value)) { self::ListBindVariable($bind_var, $value); } else { throw new VTException('Unknown bind variable type.'); } } } } } } return $bind_var; }