我试图这样做:
Class foo {
private static $foo = 'some val';
private static $bar = self::$foo.'!';
}
......但显然你不能这样做:
Parse error: syntax error, unexpected '$foo' (T_VARIABLE) in {file} on line {line}
这是:a)不可能; b)出于某种原因的坏主意; c)通过其他方式更好地实现了吗?
答案 0 :(得分:3)
您只能在类声明中为类成员分配常量值!
因此,要解决您的问题,您必须在函数或构造函数中分配值,并在函数内访问它,因为它是私有的!
<?php
Class foo {
private static $foo = 'some val';
private static $bar = null;
public function __construct() {
$this->init();
}
public static function init() {
self::$bar = self::$foo . '!';
}
public static function getBar() {
echo self::$bar;
}
}
$obj = new foo();
echo $obj->getBar();
?>
输出:
some val!
有关详细信息,请查看此处:
http://php.net/manual/en/language.oop5.static.php
http://php.net/manual/en/language.oop5.visibility.php
a)有可能看到我的回答/例子
b)为什么这是一个坏主意?这是一个正常的任务,你的财产是私人的,所以其他类不能修改它们!
c)它完全没问题