所以在我总是习惯使用程序样式来编写php之前,例如:
mysqli_connect
或
mysqli_prepare
现在我不小心开始把它混合在一起,我会做一些像:
mysqli_connect();
这是程序样式,然后是下一个命令:
$mysqli->prepare();
是面向对象的风格。
我的代码仍然有效,但如果我看看php.net,只要它显示示例,整个示例就是面向对象或程序性的。所以我问我是否可以同时使用对象和程序的PHP代码。提前谢谢!
答案 0 :(得分:11)
虽然你的编码方式完全是你的决定和独特风格,但我认为在决定程序性,面向对象或混合时需要考虑几个因素。
计划规格 -
首先,如果您是团队成员,为其他人编写程序或遵循自己的规范,请考虑是否已做出选择。
可用性 -
让我们面对现实吧。有时,最好的库可以面向对象或程序化,而不是两者都可用。在这种情况下,从一种样式改变将需要使用完全不同的库,或者自己构建类或函数库。可用的库可以节省您的时间,唯一的偏移成本是主要面向对象程序中的过程函数,反之亦然。
熟悉 -
与可用性类似,您可能更熟悉某个类或一组函数。虽然您可能有时间停下来学习新的课程模块以增加您的知识,但您可以通过使用已经学习并经过全面测试的程序库来节省时间。因此,如果您正在制定时间表,则可能需要使用更熟悉的库。但是,如果您正在研究和学习,那么您可能需要花时间阅读文档,安装和测试新的解决方案。
数据处理和速度 -
另一个要考虑的因素是如何处理数据。如果数据在类中,则该类可能具有对数据进行操作的方法。在这种情况下,过程编程需要从类或对象获取数据,对数据进行操作,然后更新对象。更好的设计是在我看来将功能包含在对象中。
但是,如果您的所有数据处理都在类之外,那么使用函数可能会更快。如果要使用类方法,则必须加载类,并可能创建对象。即使是静态方法也可能比函数慢。因此,如果速度是一个考虑因素,例如在循环中,那么请考虑您的程序和PHP必须经历多少步骤才能到达函数,类或对象。
展望未来 -
如果您想在程序编程或面向对象编程之间进行选择,那么请尝试预测将来最有用的内容。我发现面向对象编程对于创建可重用代码非常有用。我发现过程编程对于命令行代码以及组织和使用对象非常有用。它们很可能与计算机科学的发展保持一致,因此我之前完成的工作更有可能再次发挥作用。
相比之下,一些图书馆和编程语言可能会鼓励一种风格。 PHP支持这两种样式。但如果我的总体印象是准确的,那么PHP就一直朝着面向对象的风格方向发展。如果在PHP函数和对象之间进行选择,请查看并查看为其创建函数的PHP版本。还要检查是否有任何过程函数被折旧或将变得过时。如果是这样,请使用面向对象的方法,因为这将使您的程序在不再支持这些过程函数时更有用。
希望这提供了一些考虑因素。感谢。
答案 1 :(得分:1)
编码领域发生了更糟糕的事情。有人会说这是完全错误的。其他人只会得到报酬,并对代码的运作感到高兴。这一切都取决于你想成为什么样的程序员。
http://www.codingconfessional.com/
或
答案 2 :(得分:1)
使用两者不会破坏您的代码并且技术上“正常”,但考虑您或其他人将来对应用程序的维护。如果代码一致且干净,那么阅读代码要容易得多,以后通过选择并坚持一个代码(最好是OOP)来节省大量时间。