[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;
	}
}
2024/08/14 10:53 2024/08/14 10:53
글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요