ReflectionClass getDocComment returning false

2019-07-07 02:17发布

问题:

I am trying to get the doc comment from a class and for the life of me, I have no idea why getDocComment() is returning false. I am expecting getDocComment to return @Whatever.

<?php
/** @Whatever */
class Test {
}

$rc = new ReflectionClass("Test");
var_dump($rc->getDocComment());

Output: bool(false)

$ php --version
PHP 5.5.1 (cli) (built: Aug 31 2013 01:32:53) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.2-dev, Copyright (c) 1999-2013, by Zend Technologies

回答1:

If you're using Zend Opcache, then look at the following ini settings:

opcache.save_comments (default "1")
    If disabled, all PHPDoc comments are dropped from the code to reduce the
       size of the optimized code. Disabling "Doc Comments" may break some
       existing applications and frameworks (e.g. Doctrine, ZF2, PHPUnit)

opcache.load_comments (default "1")
    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.