[PHP] Deprecated: Creation of dynamic property...
PHP 8.1까지는 아래처럼 미리 선언하지 않은 클래스의 동적 요소를 쓸 수 있었다.
class Class_name {
public function __construct() {
$this->id = null;
}
}
하지만 PHP 8.2에서는 위와 같이 미리 선언하지 않은 동적 요소(dynamic property)로서 클래스의 메소드에 쓰인 변수가 있으면, 아래처럼 비권장 경고문이 나온다.
PHP Deprecated: Creation of dynamic property Class_name::$var is deprecated in .../???.php on line 3
PHP 8.2에서는 경고문만 나오고 있지만, 그 뒤에 나오는 판에서는 클래스의 멤버 변수로 미리 선언하지 않은 동적 요소로 들어간 변수가 있으면 작동하지 않을 수도 있다.
아래처럼 클래스 내부에 멤버 변수($id)를 미리 선언하면, PHP 8.2 이후에 나올 수 있는 경고문이나 오류를 피할 수 있다.
class Class_name {
public $id;
public function __construct() {
$this->id = null;
}
}
덧글을 달아 주세요