5

我想在不初始化这个类的情况下从 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;
}
?>
4

2 回答 2

1

什么是静态的?它更简单:

<?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;
}

?>
于 2013-05-30T20:37:57.557 回答
1

带有吸气剂的受保护变量怎么样。

class Base {
    protected $version = array(2,3,4,5,6);
    public function __version() { return $this->version; }
}

你可以在任何你喜欢的地方实例化它,或者扩展它来添加函数。该版本将在任何扩展中保持不变,因此请记住这一点。

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

于 2013-05-30T20:41:50.823 回答