Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP5静态关键字和用法_Php_Static - Fatal编程技术网

PHP5静态关键字和用法

PHP5静态关键字和用法,php,static,Php,Static,静态关键字已知为自由代理 您可以通过以下方式声明静态方法: protected static function foo() { // lots of self:: code in here } 或: 我刚刚遇到这样的代码: static protected static function foobar() { // lots of self:: code in here } 当然这是原作者的拼写错误,但是为什么PHP会接受这是一个有效的语句呢 更新有问题的版本是PHP5.2.16。我刚刚确认

静态关键字已知为自由代理

您可以通过以下方式声明静态方法:

protected static function foo() {
// lots of self:: code in here
}
或:

我刚刚遇到这样的代码:

static protected static function foobar() {
// lots of self:: code in here
}
当然这是原作者的拼写错误,但是为什么PHP会接受这是一个有效的语句呢

更新有问题的版本是PHP5.2.16。我刚刚确认,这也是有效的:

static static static public static function foobar() {
// lots ...
}

这似乎是PHP以前版本中的一个bug,已经修复。在PHP5.3中测试它会产生

致命错误:不允许使用多个静态修饰符


编辑:多亏Matt Gibson的发现,这确实是一个bug。

因为PHP解释器不是世界上最好的解释器:但它很灵活,所以我们可以每天折磨它来完成我们的投标:你使用的是什么版本的PHP?@Linus Kleen:是的,我在搜索,但什么都没有找到。也许是他们自己发现的,然后悄悄地修复了它。鬼鬼祟祟的,很多@莱纳斯@BoltClock是的,我很无聊:@BoltClock你能把这个写进你的答案里吗,这样我就可以接受了?“谢谢你有效地浪费了你的时间,@Matt@Linus,没问题。在我等待长时间的查询完成时,我必须做一些事情:
static static static public static function foobar() {
// lots ...
}