繁体   English   中英

PHP OOP是否与Java中的main()等效?

[英]Does PHP OOP have an equivalent to main() in Java?

为了代码清晰起见,我想知道是否有可能让PHP中的对象在定义时执行一个函数或块,以使事情更像Java。

不是因为它是通过__construct()实例化的,而是像Java中的main()那样被定义的。 PHP与Java中的main()是否等效?

对于具有在OO PHP中对整个项目进行编码的经验的人:您如何确定哪些代码应该和不应该包含在对象中?

对象中应包含什么代码? 好吧,这是一个悬而未决的问题:这要看情况。

对于小型项目,您可以按程序进行所有操作。 但是OO确实为大型项目带来了一些好处,例如封装 (仅根据需要授予外部方法/属性访问权,以及将一个部分的机制隐藏在其他不相关的部分中)和继承 (对于帮助解决一般情况然后缩小范围非常有用)。满足您的要求,同时保持代码井井有条。

对于大型Web项目,尤其是那些使用现代PHP框架的Web项目,我想说您的代码中有80%是OO的-视图层中的控制器和代码片段除外。 但是某些系统(例如Wordpress)强制采用更程序化的样式,因此您的OO可能只占代码的30%(我在OO中进行WP插件开发,但是据我所知,这种方法很不寻常)。

要了解有关此内容的更多信息,您可能会发现选择一个PHP框架(Symfony,Zend,Cake等)会很有帮助,并仔细阅读其教程。 通过这样做,您将学到更多的知识,而不是从抽象的imo中学习。

如果您真的想要,可以创建一个“主”函数,然后调用它:

function main(){

     $obj1 = new Obj1();
     doSomething();
     //etc...

}

main();

那如果我正确理解你的问题...

您要问的不是OO问题。 Java和类似语言中的main()是一种框架功能,而不是OO功能。 main()定义的所有内容都是应用程序的入口点,无论如何,这都是您正在做的事情。

因此简短的答案是,这是无关紧要的。 更长的答案是,如果您想要那种执行顺序,则可以在PHP中寻找特定的框架。

您会在堆栈跟踪中看到main。 它只是您的应用程序的入口点。 通常,第一个文件的第一行(或零行)调用解析器。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM