11

所以之前我一直习惯用程序化风格来编码php,比如:

mysqli_connect

或者

mysqli_prepare

现在我不小心开始把它混在一起,我会做类似的事情:

mysqli_connect();

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

$mysqli->prepare();

这是面向对象的风格。

我的代码仍然有效,但是如果我在 php.net 显示示例时查看它,则整个示例要么是面向对象的,要么是过程式的。所以我问我是否可以同时使用对象和程序 php 代码。先感谢您!

4

3 回答 3

15

虽然您的编码方式完全取决于您的决定和独特的风格,但我想说在决定程序化、面向对象或混合时需要考虑一些因素。

程序规格 -

首先,如果您在一个团队中,为其他人编写程序,或者遵循您自己的规范,请考虑是否已经做出了选择。

可用性 -

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

熟悉度——

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

数据处理和速度 -

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

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

展望未来 -

如果您想在过程编程或面向对象编程之间进行选择,那么请尝试预测将来最有用的内容。我发现面向对象编程对于创建可重用代码非常有用。我发现过程式编程对于命令行代码以及组织和使用对象非常有用。随着计算机科学的发展,这些可能会保持不变,因此我之前所做的工作更有可能再次有用。

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

希望这能提供一些考虑。谢谢。

于 2013-05-26T04:24:35.500 回答
3

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

于 2013-05-26T04:15:54.623 回答
2

更糟糕的事情发生在编码的世界里。有人会说这是完全错误的。其他人只会得到报酬并为代码的工作感到高兴。这完全取决于你想成为什么样的程序员。

http://www.codingconfessional.com/

或者

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

于 2013-05-26T03:39:24.513 回答