0

それはで行うことができることを知っていますget_class($variable)。問題は、my$objectが実際には変数名を含む文字列であるということです。

それで:

$object = new MyClass();

$var = '$object';

$class = get_class($var); // obviously fails

get_class($object)その変数に直接アクセスできないため、を使用できません(token_get_all()を使用してPHP式を解析$varして文字列を生成しています)

を使用してみeval(sprintf('return get_class(%s);', $var))ましたが、変数がevalのスコープから未定義であるように見えるため、機能しません:(

これを行う方法はありますか?

クラスをReflectionMethodに渡すには、クラスを知る必要があります。これにより、メソッド(PHP式の次の要素)に関する情報を取得できます。


NVM:それは不可能だと確信しています。質問してすみません:)

4

3 に答える 3

1

できるよ

$var = new $object();

于 2012-07-24T14:15:26.093 に答える
1

変数変数を使用してみてください:http://php.net/manual/en/language.variables.variable.php

何かのようなもの:

$var = 'object';
$class = get_class( $$var );
于 2012-07-24T14:15:32.230 に答える
1

あなたは次のことができます

$ref = ltrim($var, '$');
get_class($ref);
于 2012-07-24T14:15:41.707 に答える