如何在php
中创建不可变对象?
下一个例子当然不会起作用。
final class Beer {
private $volume;
// can it be like
// private final $volume;
// ?
public function __construct($volume)
{
$this->volume = $volume;
print('<h1>Object created.</h1>');
}
}
$instance = new Beer(1)
答案 0 :(得分:1)
在php7.1上,您可以使用访问修饰符(公共,私有或受保护)定义您的类常量
final class Beer {
const volume ='xxxxxxxx' ;
public function __construct($volume)
{
echo self::volume;
print('<h1>Works!</h1>');
}
}
$instance = new Beer(1)