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

edw*_*tyl 10 php procedural styles object

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

mysqli_connect
Run Code Online (Sandbox Code Playgroud)

要么

mysqli_prepare
Run Code Online (Sandbox Code Playgroud)

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

mysqli_connect();
Run Code Online (Sandbox Code Playgroud)

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

$mysqli->prepare();
Run Code Online (Sandbox Code Playgroud)

这是面向对象的风格.

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

小智 13

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

程序规格 -

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

可用性 -

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

熟悉 -

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

数据处理和速度 -

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

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

展望未来 -

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

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

希望这提供一些考虑因素.谢谢.