我正在转换PHP 5.3库以在PHP 5.2上工作.支持我的主要方法是使用后期静态绑定return new static($options);,如果我将其转换为return new self($options)将得到相同的结果?
new self和之间有什么区别new static?
可能重复:
新自我与新静态
使用self和static下面的例子有什么区别?
class Foo
{
protected static $bar = 1234;
public static function instance()
{
echo self::$bar;
echo "\n";
echo static::$bar;
}
}
Foo::instance();
Run Code Online (Sandbox Code Playgroud)
1234
1234
Run Code Online (Sandbox Code Playgroud) 在PHP5中,我可以向类声明一个const值:
class config
{
const mailserver = 'mx.google.com';
}
Run Code Online (Sandbox Code Playgroud)
但我也可以宣布公开静态:
class config
{
public static $mailserver = 'mx.google.com';
}
Run Code Online (Sandbox Code Playgroud)
如果是配置文件,我将在以后使用,例如:
imap_connect(config::$mailserver ...
imap_connect(config::mailserver ...
Run Code Online (Sandbox Code Playgroud)
您认为哪个选项更适合使用?(更快,更少的内存负载等..)
谢谢.