如何组织函数使用的大型数组


How to organize a large array used by a function

我有一个很大的URL数组,最多500个URL。我的帮助程序类中有一个函数 Helpers.php ,我遍历这个数组并对数组中的每个 URL 执行操作。

目前,我在函数中有数组,但这对我来说似乎真的很混乱,例如:

function getURLData() {
    $urls = array( ... 500 URL array ... )
    foreach ($urls as $url) {
        // Perform actions on $url
    }
}

但是,该函数看起来非常混乱,所有 500 个 URL 都列在那里。如何重新组织它以使函数更具可读性?我应该将数组存储在单独的文件中吗?如何?哪里?

附言我正在使用Laravel 5.2。

将它们和所有类似的数据保存在数据库中。这就是DB的目的 - 保留大量类似的结构化数据。在代码中硬编码任何类型的数据都是一种反模式。

如果您需要对这些 URL 进行硬编码,我建议您为枚举创建一个名为"Enum"的新文件夹,以及像 UrlEnum 这样的类。你可以做一些东西,比如:

class UrlEnum {
    const URLS = ['http://...','https://...', ...];
}

早于 5.6 的 PHP 版本不接受 const 中的数组,因此您可以使用私有/受保护变量和一些公共静态 getUrls()。

并做foreach(UrlEnum::URLS as $url) { ... }.

如果你喜欢这种方法,你甚至可以创建一个 BaseEnum 或 AbstractEnum,这样你所有的枚举都将实现/具有相同的函数。