我正在尝试这样做:
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) 通过其他方式更好地实现?
您只能在类声明中为类成员赋值!
因此,要解决您的问题,您必须在函数或构造函数中分配一个值,并在函数中访问它,因为它是私有的!
<?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
一)可以看到我的答案/示例b)为什么这应该是一个坏主意?这是一个正常的作业,你把你的财产设为私有,这样其他类就不能修改它们!c)而且完全没问题