2

次の関数を使用して、ロードされたファイルをループし、廃止された関数を見つけようとしています。

//loads all files
include dirname(__FILE__) . '/loader.php'; 

$functions = get_defined_functions();

foreach ($functions['user'] as $func) {

    $rf = new ReflectionFunction('$func');
    var_dump($rf->isDeprecated());
}

一部の関数には次のようなマークアップがありますが、それでも returnfalseです。実際、すべての単一の関数は戻りますfalseが、マークアップが@deprecated.

 **
 *
 * @since 0.71
 * @deprecated 1.5.1
 * @deprecated Use get_post()
 *
 * @param int $postid
 * @return array
 */

参照: http://www.php.net/manual/en/class.reflectionfunction.php

4

2 に答える 2

1

Reflection のソース コードを見ると、ZEND_ACC_DEPRECATED フラグが設定されている組み込み関数にのみ適用されるため、ユーザーランドのメソッドまたは関数には適用されません。

于 2013-08-17T22:59:16.343 に答える
1

ReflectionFunction::isDeprecatedドキュメントのコメントはチェックしません。PHP 拡張機能が公開する関数に設定できる内部フラグのみをチェックします。

たとえば、拡張機能のソースの一部で、その関数が宣言され、非推奨としてマークされています ( の部分は「非推奨」を表します)。eregDEPPHP_DEP_FE

于 2013-08-17T22:59:27.753 に答える