php - 删除 PHP 中重复的硬编码循环和条件

标签 php spl

我看到这个关于 C# 的问题,我想要 PHP 的答案。我有一些旧代码,有 4 页的 foreach 循环和条件,这使得阅读和理解变得困难。我怎样才能让这个更加面向对象呢?我正在考虑使用 SPL 函数,但尚未完全理解其中涉及的内容。

最佳答案

这段代码可能会被显着清理,并朝着 OO 的方向推进,而无需触及 SPL。

仅当您想要改变语言结构(如 foreach())、内置函数(如 count())或数组访问函数(运算符 [] 和函数(如 key()、next())中的正常对象行为时,才需要 SPL )等)。

清理建议:

  • 如果同一操作在代码中执行多次(超过 1 或 2 次),请将其分解为一个函数。如果要对数组中的所有元素执行此操作,请考虑使用 array_walk 。如果由于某种原因遍历数组不合适,请使用循环:)
  • 如果您有一些比键:值对更复杂的语义连接数据的实例以及关联的操作,请考虑将其包装在一个类中。但有正式记录的关联。数组可能也适合你。取决于您的风格和数据类型。这里重要的是处理数据的方法的结构和文档。是否将其作为一类并不重要。
  • 完成上述步骤后,将新编写的函数和对象分解为单独的包含文件。我倾向于将大部分内容都包含在一个类中,所以我主要有一个类的公关。文件。但有些辅助类与主类共享一个文件,等等。您会感觉到的。

关于php - 删除 PHP 中重复的硬编码循环和条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/210475/

相关文章:

javascript - Ajax成功函数无法在自定义函数内访问

javascript - OpenTok: session 和 token 有什么区别?

php - 使用 php 的 mysql 存储过程

php - PHP 中的 SplObjectStorage 和含糖语法

php - PHP SplHeap 真的是堆吗?

php 递归目录迭代器 : how to exclude directory paths with a dot and double dots?

PHPExcel 验证单元格是否有空值

php - 获取关键字在表格中显示的百分比

php - 为什么 SplPriorityQueue 类是一个队列(概念)

php - 如何将 php 枚举转换为数组?