【发布时间】:2014-11-22 07:27:39
【问题描述】:
问题:
-
const变量不能被连接(但我们可以通过常量define来实现)。 -
define在运行时变慢 - 特别是当您有 long 定义列表时。
静态 - 解决方案?
定义,
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 的实例但仍然可以获得正确的结果?
有什么想法可以让这变得更好吗?
【问题讨论】: