我最近一直在用PHP工作,虽然我发现C++/C#/ python等语言非常简单,但在涉及其OO表示时,我遇到了一些奇怪的差异(可能).如果有人能回答几个简短的问题,我会非常感激:)
构造函数可以在PHP中返回结果值吗?
当一个类中的成员函数调用一个类中的另一个成员函数时,我是否必须使用self :: scoping或者只是一个提示?
为什么有自我::和$ this->和有什么区别?
是否需要删除使用new创建的对象,或者将超出范围删除它?我不确定它是真正的动态,还是像C#中那样的垃圾收集.
我知道问题有点简单,我一直看到使用所有这些东西的代码 - 但我没有看到任何具体的东西,我家里没有一本好的PHP书籍:)所以,谢谢你提前找到答案!
1.构造函数可以在PHP中返回结果值吗?
没有.(这是可能的,但问题已得到解决 - 如果您看到代码提示其他内容.)
2.当一个类中的成员函数调用一个类中的另一个成员函数时,我是否必须使用self :: scoping或者只是一个提示?
这通常在技术上有效,请不要这样做.内部对象实例用于$this访问自己的属性和方法.
3.为什么有自我:: $ this->和有什么区别?
这不是完整的答案,但对于介绍:self::是静态函数调用和成员访问.请参阅PHP:self vs. $ this.
4.是否需要删除使用new创建的对象,或者将超出范围删除它?我不确定它是真正的动态,还是像C#中那样的垃圾收集.
您不需要删除对象,还有一个垃圾收集器.当对象离开范围时,它们将被删除(zval的容器引用计数为1).请记住,在PHP的请求结束时删除所有内容.您的应用程序通常只运行几分之一秒,然后在脚本(和PHP)终止时清除进程的内存.
$this(除非抛出异常) self::访问静态成员时,需要self::用于访问静态成员,$this->例如成员