PHP OOP与Java中的main()有等价物吗?
出于代码清晰性的考虑,我想知道是否有可能让PHP中的对象在定义时执行函数或块,以保持更像Java 它不是通过PHP OOP与Java中的main()有等价物吗?,php,object,coding-style,Php,Object,Coding Style,出于代码清晰性的考虑,我想知道是否有可能让PHP中的对象在定义时执行函数或块,以保持更像Java 它不是通过\uu construct()实例化的,而是像Java中的main()一样定义的。PHP在Java中是否与main()等效 对于有使用OO PHP编写整个项目经验的人来说:如何决定哪些代码应该和不应该包含在对象中?如果你真的想,你可以创建一个“main”函数,然后调用它: function main(){ $obj1 = new Obj1(); doSomething
\uu construct()
实例化的,而是像Java中的main()
一样定义的。PHP在Java中是否与main()
等效
对于有使用OO PHP编写整个项目经验的人来说:如何决定哪些代码应该和不应该包含在对象中?如果你真的想,你可以创建一个“main”函数,然后调用它:
function main(){
$obj1 = new Obj1();
doSomething();
//etc...
}
main();
如果我正确理解了你的问题…如果你真的想,你可以创建一个“main”函数,然后调用它:
function main(){
$obj1 = new Obj1();
doSomething();
//etc...
}
main();
如果我正确理解了你的问题…你问的不是OO问题。Java和类似语言中的main()是一个框架特性,而不是OO特性。所有main()定义都是应用程序的入口点,这是您正在做的事情
因此,简单的回答是,这是无关紧要的。较长的答案是,如果您需要这种执行顺序,可以在PHP中查找特定的框架 你所问的不是一个面向对象的问题。Java和类似语言中的main()是一个框架特性,而不是OO特性。所有main()定义都是应用程序的入口点,这是您正在做的事情
因此,简单的回答是,这是无关紧要的。较长的答案是,如果您需要这种执行顺序,可以在PHP中查找特定的框架 您将在堆栈跟踪中看到main。它只是应用程序的入口点。通常是调用解析器的第一个文件的第一行(或第零行)
您将在堆栈跟踪中看到main。它只是应用程序的入口点。通常是调用解析器的第一个文件的第一行(或第零行)
对象中应该包含哪些代码?好吧,这是一个非常开放的问题:这要看情况而定 对于小型项目,您可以按程序完成所有工作。但OO确实为大型项目带来了一些好处,例如封装(只在需要时授予外部方法/属性访问权限,并将一个部分的机制隐藏在其他不相关的部分中)和继承(非常有助于解决一般情况,然后将其缩小到您的需求范围,同时保持代码井然有序) 对于大型web项目,尤其是那些使用现代PHP框架的项目,我想说80%的代码可以是OO——除了视图层中的控制器和代码片段。但是一些系统(比如Wordpress)强制采用更为程序化的风格,因此您的OO可能只占代码的30%(我在OO中开发WP插件,但从我可以看出,这种方法是不寻常的)
要了解更多信息,您可能会发现选择一个PHP框架(Symfony、Zend、Cake等)并运行他们的教程很有帮助。在我看来,通过实践学习比通过抽象学习要多得多。对象中应该包含哪些代码?好吧,这是一个非常开放的问题:这要看情况而定 对于小型项目,您可以按程序完成所有工作。但OO确实为大型项目带来了一些好处,例如封装(只在需要时授予外部方法/属性访问权限,并将一个部分的机制隐藏在其他不相关的部分中)和继承(非常有助于解决一般情况,然后将其缩小到您的需求范围,同时保持代码井然有序) 对于大型web项目,尤其是那些使用现代PHP框架的项目,我想说80%的代码可以是OO——除了视图层中的控制器和代码片段。但是一些系统(比如Wordpress)强制采用更为程序化的风格,因此您的OO可能只占代码的30%(我在OO中开发WP插件,但从我可以看出,这种方法是不寻常的)
要了解更多信息,您可能会发现选择一个PHP框架(Symfony、Zend、Cake等)并运行他们的教程很有帮助。在我看来,通过实践你会学到比通过抽象学习多得多的东西。什么?你能更详细地说明你在说什么吗?不,没有。PHP在找到语句时执行语句,从文件开始到结束。等效的方法是定义一个类,将
main()
代码放在构造函数中,然后在末尾添加newmyclass()
。main和u构造的共同点是什么?是的,绝对没有……什么?你能更详细地说明你在说什么吗?不,没有。PHP在找到语句时执行语句,从文件开始到结束。等效的方法是定义一个类,将main()
代码放在构造函数中,然后在末尾添加newmyclass()
。main和u构造的共同点是什么?是的,绝对没有。复选标记也用于对我原始问题的评论中的halfer的答案。谢谢@ch7527,很高兴它有帮助。复选标记也用于对我原始问题的评论中的halfer的答案。谢谢@ch7527,很高兴它有帮助。