我想从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->__version()
一样简单。将其命名为类似于魔法方法的名称,以防止函数名称冲突。如果需要,可以通过扩展重新定义。