初始化一个class属性
Initialize a class property
有没有办法从另一个 class 属性 初始化一个 PHP class 属性?我有一系列属性,我想相互依赖以便轻松修改根值:
class Anon {
private static $a = 5;
private static $b = '+' . (2 * self::$a);
}
但是,这会导致语法错误。我在搜索这个时遇到了麻烦,但我还没有看到有人尝试这样做!
取决于您如何使用 class,但也许这会有所帮助:
class Anon {
private static $a = 5;
private static $b;
function __construct() {
self::$b = '+' . (2 * self::$a);
}
public function getB() {
return self::$b;
}
}
$anon = new Anon;
echo $anon->getB();
不幸的是,PHP 在加载 class 时无法解析非平凡表达式
这是初始化静态成员的解决方案
class Anon {
private static $a;
private static $b;
public static function init () {
self::$a = 5;
self::$b = '+' . (2 * self::$a);
}
}
Anon::init();
您可以使用 Init 方法初始化静态变量
<?php
class Anon {
private static $a = 5;
private static $b ;
public static function Init(){
self::$b = '+' . (2 * self::$a);
}
public static function getB(){
return self::$b;
}
}
Anon::Init();
echo Anon::getB();
?>
您无法直接访问私有 class 属性。不过,您可以使用 public。
class Anon {
public static $a = 5;
}
print Anon::$a;
或像其他示例一样使用 public 函数来访问 $b
;
class Anon {
private static $a = 5;
private static $b;
public static function init() {
return self::$b = '+' . (2 * self::$a);
}
}
echo Anon::init();
有没有办法从另一个 class 属性 初始化一个 PHP class 属性?我有一系列属性,我想相互依赖以便轻松修改根值:
class Anon {
private static $a = 5;
private static $b = '+' . (2 * self::$a);
}
但是,这会导致语法错误。我在搜索这个时遇到了麻烦,但我还没有看到有人尝试这样做!
取决于您如何使用 class,但也许这会有所帮助:
class Anon {
private static $a = 5;
private static $b;
function __construct() {
self::$b = '+' . (2 * self::$a);
}
public function getB() {
return self::$b;
}
}
$anon = new Anon;
echo $anon->getB();
不幸的是,PHP 在加载 class 时无法解析非平凡表达式
这是初始化静态成员的解决方案
class Anon {
private static $a;
private static $b;
public static function init () {
self::$a = 5;
self::$b = '+' . (2 * self::$a);
}
}
Anon::init();
您可以使用 Init 方法初始化静态变量
<?php
class Anon {
private static $a = 5;
private static $b ;
public static function Init(){
self::$b = '+' . (2 * self::$a);
}
public static function getB(){
return self::$b;
}
}
Anon::Init();
echo Anon::getB();
?>
您无法直接访问私有 class 属性。不过,您可以使用 public。
class Anon {
public static $a = 5;
}
print Anon::$a;
或像其他示例一样使用 public 函数来访问 $b
;
class Anon {
private static $a = 5;
private static $b;
public static function init() {
return self::$b = '+' . (2 * self::$a);
}
}
echo Anon::init();