라이브러리

[PHP] ReflectionAttribute::__construct - 직접 인스턴스화를 허용하지 않는 개인 생성자




ReflectionAttribute::__construct


PHP 8.1 버전부터 ReflectionAttribute 클래스가 추가되었습니다. 이 클래스는 PHP의 Reflection API를 통해 클래스, 메소드, 속성에 대한 정보를 얻을 수 있게 해줍니다.

ReflectionAttribute::__construct 메소드는 ReflectionAttribute 클래스의 생성자 메소드입니다. 이 메소드는 클래스, 메소드, 속성에 대한 정보를 얻을 때 사용됩니다.

예제


#hostingforum.kr
php

use ReflectionClass;

use ReflectionMethod;

use ReflectionAttribute;



class MyClass {

    #[MyAttribute]

    public function myMethod() {

        echo "Hello, World!";

    }

}



class MyAttribute extends Attribute {

    public function __construct() {

        echo "MyAttribute 생성자 호출됨
";

    }

}



$reflectionClass = new ReflectionClass(MyClass::class);

$reflectionMethod = $reflectionClass->getMethod('myMethod');



$reflectionAttribute = $reflectionMethod->getAttributes()[0];

echo $reflectionAttribute->getName() . "
"; // MyAttribute

echo $reflectionAttribute->getArguments() . "
"; // Array ( [0] => )



// ReflectionAttribute::__construct 호출

$reflectionAttribute->getArguments()[0] = new MyAttribute();

echo $reflectionAttribute->getArguments() . "
"; // Array ( [0] => MyAttribute Object ( ) )



설명


* ReflectionClass::getMethod 메소드를 사용하여 MyClass 클래스의 myMethod 메소드에 대한 ReflectionMethod 객체를 얻습니다.
* ReflectionMethod::getAttributes 메소드를 사용하여 myMethod 메소드에 대한 ReflectionAttribute 객체를 얻습니다.
* ReflectionAttribute::getName 메소드를 사용하여 ReflectionAttribute 객체의 이름을 얻습니다.
* ReflectionAttribute::getArguments 메소드를 사용하여 ReflectionAttribute 객체의 인수를 얻습니다.
* ReflectionAttribute::__construct 메소드를 호출하여 ReflectionAttribute 객체의 인수를 설정합니다.

참고


* ReflectionAttribute 클래스는 PHP 8.1 버전부터 사용할 수 있습니다.
* ReflectionAttribute 클래스는 클래스, 메소드, 속성에 대한 정보를 얻을 때 사용됩니다.
* ReflectionAttribute::__construct 메소드는 ReflectionAttribute 클래스의 생성자 메소드입니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 292 페이지

검색

게시물 검색