2017-07-03 2 views
2

最近、私は、use()コンストラクトを経由してクロージャに渡されたReflectionFunctionを介してパラメータにアクセスする問題に直面していました。closureでuse()を使用して渡されたReflectionFunctionのパラメータにアクセスする方法

例:

$var = 'test'; 
$var2 = 'test2'; 
$func = function()use($var,$var2) { 
    echo $var; 
}; 

$ref = new ReflectionFunction($func); 
// Access the parameters here 

がどのように私はこの問題を解決するために行くでしょうか?

+3

方法である私の質問 "尋ねる何イム不明"?詳しく教えてください。 – Xatenev

答えて

2

$ref->getStaticVariables()にアクセスすると解決できます。

例:

<?php 


$var = 'test'; 
$var2 = 'test2'; 
$func = function()use($var,$var2) { 
    echo $var; 
}; 

$ref = new ReflectionFunction($func); 
var_dump($ref->getStaticVariables()); 

出力:

アレイ(2){ [ "VAR"] => 列(4) "テスト" [ "VAR2"] => 文字列が(5) "TEST2" }

作業テストケース:https://3v4l.org/hDl07

リファレンスgetStaticVariables()http://php.net/manual/de/reflectionfunctionabstract.getstaticvariables.php

+0

質問をして1分以内に答えますか?なぜ?? – samayo

+0

@サマヨまだstackoverflowのトピックに関連する質問と答えがないので。 (少なくとも私は何かを見つけることができませんでした) – Xatenev

+1

次に、[Documentation](https://stackoverflow.com/documentation)または[References](https://stackoverflow.com/questions/3737139/) php)、少なくとも返信するには他の人に5分を与える – samayo

関連する問題