最近对一个
视频的评论被问到一个小问题:是否有选择静态而非自我的特殊考虑或者我们可以改变这样的问题:
PHP的新静态和新的自我是什么
事实上,这是一个明显的例子。
类的父亲{
公共静态
函数(){私
返回新的自我();
}
公共静态函数获取静态(){
返回新静态();
}
}
子类
扩展父{ }
回声get_class(儿子::私)(); / /父亲
回声get_class(儿子::获取静态)(); / /儿子
回声get_class(父亲::私)(); / /父亲
回声get_class(父亲::获取静态)(); / /父亲
注意这条线get_class(儿子::获取静态());返回子类,可概括如下:
新的自我
在新的关键词在新自班1.self回报,如这里的例子:
公共静态函数(){私
返回新(自);在这里返回新父关键字
}
永远回到父亲身边。
新的静态
2.static是聪明的基础之上:静态将
执行新的静态类(),例如,儿子执行get_class(儿子::获取静态()),它返回的儿子,父亲执行get_class(父亲:*()),并返回结果。
在没有继承的
情况下,可以考虑新的自我和新的静态返回相同的结果。
提示:可以使用一个很好的IDE来看看直接说明。例如,PhpStorm:
快乐的黑客