라이브러리

[PHP] ReflectionParameter::canBePassedByValue - 이 매개변수가 값으로 전달될 수 있는지 여부를 반환합니다.




ReflectionParameter::canBePassedByValue


PHP 7.0 버전부터 ReflectionParameter 클래스의 `canBePassedByValue` 메소드가 추가되었습니다. 이 메소드는 인자로 전달된 ReflectionParameter 객체가 값으로 전달될 수 있는지 여부를 반환합니다.

값으로 전달되는 조건


값으로 전달되는 조건은 PHP의 타입 정의에 따라 결정됩니다. PHP 7.0 버전부터 PHP는 타입 정의를 지원하기 시작했습니다. 타입 정의는 함수의 인자 타입을 정의하는 데 사용됩니다.

예제


#hostingforum.kr
php

function test($param) {

    echo "param: " . $param . "
";

}



function test2($param) {

    echo "param: " . $param . "
";

}



$reflectionFunction = new ReflectionFunction('test');

$reflectionParameter = $reflectionFunction->getParameters()[0];



echo $reflectionParameter->getName() . " can be passed by value: " . var_export($reflectionParameter->canBePassedByValue(), true) . "
";



$reflectionFunction2 = new ReflectionFunction('test2');

$reflectionParameter2 = $reflectionFunction2->getParameters()[0];



echo $reflectionParameter2->getName() . " can be passed by value: " . var_export($reflectionParameter2->canBePassedByValue(), true) . "
";



위의 예제에서 `test` 함수의 `$param` 인자는 값으로 전달될 수 있습니다. 하지만 `test2` 함수의 `$param` 인자는 값으로 전달될 수 없습니다. 왜냐하면 `test2` 함수의 `$param` 인자는 `&` 연산자를 사용하여 참조로 전달되어야 하기 때문입니다.

결과


#hostingforum.kr


param can be passed by value: true

param can be passed by value: false



위의 예제에서 `test` 함수의 `$param` 인자는 값으로 전달될 수 있기 때문에 `true`가 출력됩니다. 반면 `test2` 함수의 `$param` 인자는 값으로 전달될 수 없기 때문에 `false`가 출력됩니다.

결론


`ReflectionParameter::canBePassedByValue` 메소드는 인자로 전달된 ReflectionParameter 객체가 값으로 전달될 수 있는지 여부를 반환합니다. 이 메소드는 PHP의 타입 정의에 따라 결정됩니다. PHP 7.0 버전부터 PHP는 타입 정의를 지원하기 시작했습니다. 타입 정의는 함수의 인자 타입을 정의하는 데 사용됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색