# ArrayExpressionBuilder

> Class ArrayExpressionBuilder builds yii\db\ArrayExpression for PostgreSQL DBMS.

[API reference](/docs/api/index.md) › [yii](/docs/api/yii/index.md) › [db](/docs/api/yii/db/index.md) › [pgsql](/docs/api/yii/db/pgsql/index.md) › ArrayExpressionBuilder

| class | `yii\db\pgsql\ArrayExpressionBuilder` |
| --- | --- |
| Implements | [`yii\db\ExpressionBuilderInterface`](/docs/api/yii/db/expressionbuilderinterface/index.md) |
| Uses traits | [`yii\db\ExpressionBuilderTrait`](/docs/api/yii/db/expressionbuildertrait/index.md) |
| Since | 2.0.14 |
| Source | [`framework/db/pgsql/ArrayExpressionBuilder.php`](https://github.com/yiisoft/yii2/blob/22.0/framework/db/pgsql/ArrayExpressionBuilder.php#L24) |

Class ArrayExpressionBuilder builds [`ArrayExpression`](/docs/api/yii/db/arrayexpression/index.md) for PostgreSQL DBMS.

## Properties

| Property | Type | Description | Defined by |
| --- | --- | --- | --- |
| <span id="property-queryBuilder"></span>[`$queryBuilder`](/docs/api/yii/db/expressionbuildertrait/index.md#property-queryBuilder) protected | [`yii\db\QueryBuilder`](/docs/api/yii/db/querybuilder/index.md) | Default: `null`. | [`yii\db\ExpressionBuilderTrait`](/docs/api/yii/db/expressionbuildertrait/index.md) |

## Methods

| Method | Description | Defined by |
| --- | --- | --- |
| <span id="method-__construct"></span>[`__construct()`](/docs/api/yii/db/expressionbuildertrait/index.md#method-__construct) | ExpressionBuilderTrait constructor. | [`yii\db\ExpressionBuilderTrait`](/docs/api/yii/db/expressionbuildertrait/index.md) |
| [`build()`](#method-build) | Method builds the raw SQL from the $expression that will not be additionally escaped or quoted. | `ArrayExpressionBuilder` |
| [`buildPlaceholders()`](#method-buildPlaceholders) protected | Builds placeholders array out of $expression values | `ArrayExpressionBuilder` |
| [`buildSubqueryArray()`](#method-buildSubqueryArray) protected | Build an array expression from a subquery SQL. | `ArrayExpressionBuilder` |
| [`getTypehint()`](#method-getTypehint) protected |  | `ArrayExpressionBuilder` |
| [`typecastValue()`](#method-typecastValue) protected | Casts $value to use in $expression | `ArrayExpressionBuilder` |

## Method details

### build() <span id="method-build"></span>

```php
public function build(yii\db\ArrayExpression|yii\db\ExpressionInterface $expression, array &$params = []): string
```

Method builds the raw SQL from the $expression that will not be additionally
escaped or quoted.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$expression` | [`yii\db\ArrayExpression`](/docs/api/yii/db/arrayexpression/index.md)`\|`[`yii\db\ExpressionInterface`](/docs/api/yii/db/expressioninterface/index.md) | The expression to be built |
| `$params` | `array` | The binding parameters. |

**Returns**

`string`: The raw SQL that will not be additionally escaped or quoted.

### buildPlaceholders() <span id="method-buildPlaceholders"></span>

```php
protected function buildPlaceholders(yii\db\ExpressionInterface|yii\db\ArrayExpression $expression, array &$params): array
```

Builds placeholders array out of $expression values

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$expression` | [`yii\db\ExpressionInterface`](/docs/api/yii/db/expressioninterface/index.md)`\|`[`yii\db\ArrayExpression`](/docs/api/yii/db/arrayexpression/index.md) |  |
| `$params` | `array` | The binding parameters. |

**Returns**

`array`

### buildSubqueryArray() <span id="method-buildSubqueryArray"></span>

```php
protected function buildSubqueryArray(string $sql, yii\db\ArrayExpression $expression): string
```

Build an array expression from a subquery SQL.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$sql` | `string` | The subquery SQL. |
| `$expression` | [`yii\db\ArrayExpression`](/docs/api/yii/db/arrayexpression/index.md) |  |

**Returns**

`string`: The subquery array expression.

### getTypehint() <span id="method-getTypehint"></span>

```php
protected function getTypehint(yii\db\ArrayExpression $expression): string
```

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$expression` | [`yii\db\ArrayExpression`](/docs/api/yii/db/arrayexpression/index.md) |  |

**Returns**

`string`: The typecast expression based on `type`.

### typecastValue() <span id="method-typecastValue"></span>

```php
protected function typecastValue(yii\db\ArrayExpression $expression, mixed $value): mixed
```

Casts $value to use in $expression

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$expression` | [`yii\db\ArrayExpression`](/docs/api/yii/db/arrayexpression/index.md) |  |
| `$value` | `mixed` |  |

**Returns**

`mixed`