
SwooleTable::__construct 메서드는 SwooleTable 객체를 초기화하는 역할을 합니다. 이 메서드의 인자로 column_definitions를 받는데, column_definitions는 SwooleTable의 열(column)을 정의하는 역할을 합니다.
column_definitions는 array 형태로 전달되는데, 각 열은 array 형태로 전달되며, 열의 이름(name)과 열의 타입(type)으로 구성됩니다. 예를 들어, 다음 코드는 id 열을 integer 타입, name 열을 string 타입, age 열을 integer 타입으로 정의합니다.
#hostingforum.kr
php
$column_definitions = [
'id' => ['name' => 'id', 'type' => 'integer'],
'name' => ['name' => 'name', 'type' => 'string'],
'age' => ['name' => 'age', 'type' => 'integer'],
];
이러한 column_definitions를 사용하여 SwooleTable을 초기화할 수 있습니다.
#hostingforum.kr
php
$table = new SwooleTable('example_table', $column_definitions);
하지만, column_definitions의 인자로 id 열과 age 열의 타입을 string으로 지정할 수 있습니다. 이 경우, id 열과 age 열의 타입은 string이 됩니다.
#hostingforum.kr
php
$column_definitions = [
'id' => ['name' => 'id', 'type' => 'string'],
'name' => ['name' => 'name', 'type' => 'string'],
'age' => ['name' => 'age', 'type' => 'string'],
];
반대로, column_definitions의 인자로 name 열의 타입을 integer로 지정할 수 없습니다. 이 경우, name 열의 타입은 string이 됩니다.
#hostingforum.kr
php
$column_definitions = [
'id' => ['name' => 'id', 'type' => 'integer'],
'name' => ['name' => 'name', 'type' => 'integer'], // 에러 발생
'age' => ['name' => 'age', 'type' => 'integer'],
];
또한, column_definitions의 인자로 age 열의 타입을 string으로 지정할 수 없습니다. 이 경우, age 열의 타입은 integer가 됩니다.
#hostingforum.kr
php
$column_definitions = [
'id' => ['name' => 'id', 'type' => 'integer'],
'name' => ['name' => 'name', 'type' => 'string'],
'age' => ['name' => 'age', 'type' => 'string'], // 에러 발생
];
마지막으로, column_definitions의 인자로 name 열의 타입을 float로 지정할 수 없습니다. 이 경우, name 열의 타입은 string이 됩니다.
#hostingforum.kr
php
$column_definitions = [
'id' => ['name' => 'id', 'type' => 'integer'],
'name' => ['name' => 'name', 'type' => 'float'], // 에러 발생
'age' => ['name' => 'age', 'type' => 'integer'],
];
SwooleTable::__construct 메서드는 column_definitions의 타입을 검사하여 정의한 타입과 일치하지 않는 경우 에러를 발생시킵니다. 따라서, column_definitions의 타입을 정확하게 지정하여 SwooleTable을 초기화해야 합니다.
2025-03-28 07:07