在PHP编码中使用面向对象样式和程序样式的混合是否可以接受?

时间:2013-05-26 03:35:57

标签: php object styles procedural

所以在我总是习惯使用程序样式来编写php之前,例如:

mysqli_connect

mysqli_prepare

现在我不小心开始把它混合在一起,我会做一些像:

mysqli_connect();

这是程序样式,然后是下一个命令:

$mysqli->prepare();

是面向对象的风格。

我的代码仍然有效,但如果我看看php.net,只要它显示示例,整个示例就是面向对象或程序性的。所以我问我是否可以同时使用对象和程序的PHP代码。提前谢谢!

3 个答案:

答案 0 :(得分:11)

虽然你的编码方式完全是你的决定和独特风格,但我认为在决定程序性,面向对象或混合时需要考虑几个因素。

计划规格 -

首先,如果您是团队成员,为其他人编写程序或遵循自己的规范,请考虑是否已做出选择。

可用性 -

让我们面对现实吧。有时,最好的库可以面向对象或程序化,而不是两者都可用。在这种情况下,从一种样式改变将需要使用完全不同的库,或者自己构建类或函数库。可用的库可以节省您的时间,唯一的偏移成本是主要面向对象程序中的过程函数,反之亦然。

熟悉 -

与可用性类似,您可能更熟悉某个类或一组函数。虽然您可能有时间停下来学习新的课程模块以增加您的知识,但您可以通过使用已经学习并经过全面测试的程序库来节省时间。因此,如果您正在制定时间表,则可能需要使用更熟悉的库。但是,如果您正在研究和学习,那么您可能需要花时间阅读文档,安装和测试新的解决方案。

数据处理和速度 -

另一个要考虑的因素是如何处理数据。如果数据在类中,则该类可能具有对数据进行操作的方法。在这种情况下,过程编程需要从类或对象获取数据,对数据进行操作,然后更新对象。更好的设计是在我看来将功能包含在对象中。

但是,如果您的所有数据处理都在类之外,那么使用函数可能会更快。如果要使用类方法,则必须加载类,并可能创建对象。即使是静态方法也可能比函数慢。因此,如果速度是一个考虑因素,例如在循环中,那么请考虑您的程序和PHP必须经历多少步骤才能到达函数,类或对象。

展望未来 -

如果您想在程序编程或面向对象编程之间进行选择,那么请尝试预测将来最有用的内容。我发现面向对象编程对于创建可重用代码非常有用。我发现过程编程对于命令行代码以及组织和使用对象非常有用。它们很可能与计算机科学的发展保持一致,因此我之前完成的工作更有可能再次发挥作用。

相比之下,一些图书馆和编程语言可能会鼓励一种风格。 PHP支持这两种样式。但如果我的总体印象是准确的,那么PHP就一直朝着面向对象的风格方向发展。如果在PHP函数和对象之间进行选择,请查看并查看为其创建函数的PHP版本。还要检查是否有任何过程函数被折旧或将变得过时。如果是这样,请使用面向对象的方法,因为这将使您的程序在不再支持这些过程函数时更有用。

希望这提供了一些考虑因素。感谢。

答案 1 :(得分:1)

编码领域发生了更糟糕的事情。有人会说这是完全错误的。其他人只会得到报酬,并对代码的运作感到高兴。这一切都取决于你想成为什么样的程序员。

http://www.codingconfessional.com/

http://pragprog.com/the-pragmatic-programmer

答案 2 :(得分:1)

使用两者不会破坏您的代码并且技术上“正常”,但考虑您或其他人将来对应用程序的维护。如果代码一致且干净,那么阅读代码要容易得多,以后通过选择并坚持一个代码(最好是OOP)来节省大量时间。