反射类PHP文件?

反射类PHP文件?,php,class,reflection,properties,Php,Class,Reflection,Properties,我想在不初始化这个类的情况下从类PHP中获取值。 为此,我给出了该类所在的文件路径,以便对其进行检查,但不进行初始化 我的想法: <?php $reflection = new ReflectionClass( '/var/www/classes/Base.php' ); $version = $reflection->getProperty('version')->getValue( ); if( $version >= 1 ) { return true;

我想在不初始化这个类的情况下从类PHP中获取值。 为此,我给出了该类所在的文件路径,以便对其进行检查,但不进行初始化

我的想法:

<?php
$reflection = new ReflectionClass( '/var/www/classes/Base.php' );
$version = $reflection->getProperty('version')->getValue(  );

if( $version >= 1 )
{
    return true;
}
return false;
?>

BASE.PHP

<?php
class Base
{
    private $version = 2;
}
?>

静态是什么?简单得多:

<?php
class Base
{
    public static $version = 2; // or $version = array(1,2,3);
}

if(is_array(Base::$version)) {
    print_r(Base::$version);
} else {
    echo Base::$version;
}

?>

一个带getter的受保护变量怎么样

class Base {
    protected $version = array(2,3,4,5,6);
    public function __version() { return $this->version; }
}
您可以在任何地方实例化它,或者扩展它以向其中添加函数。版本在任何扩展中都是不变的,所以请记住这一点


用法非常简单,如
$yourClass->\uu version()
。将其命名为类似于魔术方法的名称,以防止函数名冲突。如果需要,可以通过扩展重新定义它。

请在尝试时告知我们它是否有效?您想做什么?为什么不让它成为一个公共常量呢?如果你这样做是为了提高性能,你应该知道加载
反射
比简单地创建类、获取属性然后删除它要复杂得多。伙计们,我需要在变量上使用数组。示例:$version=array(1,2,3,4,5,6,7,8,9,…);或int值…,并要求您知道类的确切名称。@Sébastienrena只能使用您的解决方案。下面将输出'2':
classbase{publicstatic$version=2;}$o=newbase;打印(o::$版本)。你只需要知道它是静态的!它如何回答获取文件并从中提取类的问题?