【问题标题】:Does PHP OOP have an equivalent to main() in Java?PHP OOP 是否与 Java 中的 main() 等效?
【发布时间】:2012-12-27 13:58:09
【问题描述】:

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

不是通过__construct() 实例化它,而是像Java 中的main() 那样定义它。 PHP 是否有相当于 Java 中的main()

对于在 OO PHP 中编写整个项目的经验的人:您如何决定哪些代码应该包含在对象中,哪些不应该包含在对象中?

【问题讨论】:

  • 什么?你能更详细地说明你在说什么吗?
  • 不,它没有。 PHP 在找到它们时执行语句,从文件的开头到结尾。等效的方法是定义一个类,将main() 代码放入构造函数中,然后在末尾添加new MyClass()
  • main 和 __construct 有什么共同点?是的,绝对没有..

标签: php object coding-style


【解决方案1】:

对象中应该包含哪些代码?嗯,这是一个相当开放的问题:这取决于。

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

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

要了解更多信息,您可能会发现选择一个 PHP 框架(Symfony、Zend、Cake 等)并运行他们的教程很有帮助。通过你会学到比抽象学习更多的东西,imo。

【讨论】:

  • 复选标记也用于在对我的原始问题的评论中对 halfer 的回答。
  • 谢谢@ch7527,很高兴它有帮助。
【解决方案2】:

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

function main(){

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

}

main();

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

【讨论】:

    【解决方案3】:

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

    所以简短的回答是这无关紧要。更长的答案是,如果你想要那种执行顺序,你可以在 PHP 中寻找一个特定的框架。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-18
        • 1970-01-01
        • 2011-10-14
        • 1970-01-01
        • 2011-03-03
        • 2011-04-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多