1
const
变量不能concated(但我们可以做到这一点恒定define
)。define
运行时速度变慢 - 特别是当您有一个定义列表时长的定义列表。
静态 - 解决方案?
定义,
define('prefix','hello');
define('suffix','world');
define('greeting',prefix.' '.suffix);
静态,
class greeting
{
static public $prefix = 'hello';
static public $suffix = 'world';
static public $concat = 'default';
public function __construct()
{
self::$concat = self::$prefix.' '.self::$suffix;
}
}
问题:
- 那么,哪一个更快呢?我如何测试它们?
- 为什么我必须先制作
greeting
的实例才能更改默认的值$concat
(请参阅下文)?
greeting
用法:
var_dump(greeting::$concat); // default
new greeting(); // I don't even need to store it in a variable like $object = new greeting();
var_dump(greeting::$concat); // hello world
这很奇怪。我怎么能不做一个greeting
的实例,但仍然可以得到正确的结果?
任何想法,我可以做些什么,使这更好?
谢谢我知道,但我需要更短的东西。 'greeting :: saysomething' – laukok 2014-11-22 07:53:12
'const'只接受与评估表达式的'define()'不同的标量数据。 – 2014-11-22 07:59:54