ReflectionMethod->getDocComment() 似乎不适用于 PHP 5.5

ReflectionMethod->getDocComment() doesn't seem to work on PHP 5.5

我正在尝试为我的 类 之一从反射方法创建一个接口,但我遇到了一个问题,方法 getDocComments() 在我的暂存环境中失败。

这是我使用的测试代码:

<?php

class foo
{
    /**
     * Method bar description
     *
     * @param string $param1
     * @param int    $param2
     * @return array
     */
    public static function bar($param1, $param2 = 0)
    {
        return array();
    }
}

$r        = new ReflectionMethod('foo', 'bar');
$docBlock = $r->getDocComment();

echo $docBlock;

在我的暂存环境中,$docBlock 为空(如果我 var_dump() 它则设置为 false)。 我在暂存环境中的 PHP 版本是 PHP Version 5.5.30-1~dotdeb+7.1。 在我的本地环境中,使用 PHP Version 5.6.27-0+deb8u1,它似乎可以工作。

虽然这个问题可能非常特定于我的环境,但我无法在我发现的任何在线 php 测试仪上重现它(我用 PHPTester and Online PHP Functions 测试了它,他们允许针对多个测试PHP 的版本,但 none 具有我在我的环境中的精确版本。

好的,Zend OPcache 似乎已在此环境中激活,参数如下:

; If disabled, all PHPDoc comments are dropped from the code to reduce the
; size of the optimized code.
opcache.save_comments=0

; If disabled, PHPDoc comments are not loaded from SHM, so "Doc Comments"
; may be always stored (save_comments=1), but not loaded by applications
; that don't need them anyway.
;opcache.load_comments=1

opcache.save_comments 设置为 0,删除所有注释(包括文档块),因此不可读。