
ArrayAccess::offsetSet 메서드를 사용하여 배열의 요소를 설정할 때 발생하는 오류는, PHP에서 클래스를 배열처럼 사용할 때 발생하는 오류입니다.
PHP는 클래스를 배열처럼 사용할 때, 클래스의 인스턴스를 배열의 인덱스로 사용합니다. 하지만, ArrayAccess::offsetSet 메서드는 클래스의 인스턴스를 배열의 인덱스로 사용할 수 없기 때문에 오류가 발생합니다.
오류를 해결하기 위해서는, 클래스의 인스턴스를 배열의 인덱스로 사용하지 않도록 수정해야 합니다. 예를 들어, 클래스의 인스턴스를 배열의 키로 사용할 수 있도록 수정할 수 있습니다.
#hostingforum.kr
php
class MyArray implements ArrayAccess {
private $data = [];
public function offsetSet($key, $value) {
$this->data[$key] = $value;
}
public function offsetExists($key) {
return isset($this->data[$key]);
}
public function offsetUnset($key) {
unset($this->data[$key]);
}
public function offsetGet($key) {
return $this->data[$key];
}
}
$array = new MyArray();
$array['foo'] = 'bar';
이 코드를 실행하면, 오류가 발생하지 않습니다.
2025-04-27 04:03