Reference documentation and code samples for the Cloud Spanner Client class ArrayType.
Represents a Spanner SQL Query array type declaration.
Array types may usually be inferred. Types are only required if the array
is nullable, or if it contains structs.
Example:
use Google\Cloud\Spanner\ArrayType;
use Google\Cloud\Spanner\Database;
use Google\Cloud\Spanner\SpannerClient;
$spanner = new SpannerClient();
$database = $spanner->connect('my-instance', 'my-database');
$arrayType = new ArrayType(Database::TYPE_STRING);
$res = $database->execute('SELECT @arrayParam as arrayValue', [
'parameters' => [
'arrayParam' => ['foo', 'bar', null]
],
'types' => [
'arrayParam' => $arrayType
]
])->rows()->current();
$firstValue = $res['arrayValue'][0]; // `foo`
// Arrays may contain structs.
use Google\Cloud\Spanner\ArrayType;
use Google\Cloud\Spanner\Database;
use Google\Cloud\Spanner\StructType;
$arrayType = new ArrayType(
(new StructType)
->add('companyName', Database::TYPE_STRING)
->add('companyId', Database::TYPE_INT64)
);
A value type code or nested struct
definition. Accepted integer and string values are defined as constants on
{@see \Google\Cloud\Spanner\Google\Cloud\Spanner\Database}, and are as follows:
Database::TYPE_BOOL, Database::TYPE_INT64,
Database::TYPE_FLOAT64, Database::TYPE_TIMESTAMP,
Database::TYPE_DATE, Database::TYPE_STRING,
Database::TYPE_NUMERIC, Database::TYPE_PG_NUMERIC and
Database::TYPE_BYTES. Nested arrays are not supported in Cloud
Spanner, and attempts to use Database::TYPE_ARRAY will result in
an exception. If null is given,
Google Cloud PHP will attempt to infer the array type.