PHP功能:这是不好的形式还是做得好?

Sha*_*son 1 php function

我编写了一个长脚本,完全符合我的需要,但现在我发现函数的用处,所以我可以在其他脚本中使用它们.

我的脚本完全按照我最初编写的方式工作,并且与我实现我创建的函数的方式完美配合.

因为我是编写函数的新手,我从来没有看到过按照我的方式实现的,我不知道它是否是好的形式.

原始方式

foreach($get_prefixes as $prefix) {
    if($prefix['type'] == 'pre') {
        $sql  = "SHOW COLUMNS FROM `$prefix[table]` LIKE 'sku_%' ";
        $sku_cols = $objDb->query($sql);
        foreach($sku_cols as $col) {
            echo $col['Field'] . '<br>';
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后就是我用创建的函数做的方式.它再次完美,但有一种"适当"的方式来做到这一点?

function getSku_($table) {
    global $objDb;
    $sql  = "SHOW COLUMNS FROM `$table` LIKE 'sku_%' ";
    $sku_cols = $objDb->query($sql);
    return $sku_cols;
}

foreach($get_prefixes as $prefix) {
    if($prefix['type'] == 'pre') {
        foreach(getSku_($prefix['table']) as $col) {
            echo $col['Field'] . '<br>';
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Tee*_*mas 5

除了它之外,我没有看到该功能有任何问题naming.这不是不正确的,只是我理解它的惯例是遵循命名为abc_pqrabcPqr_abcPqr (for private functions).

编辑:$get_prefixes在使用foreach之前,我也没有看到定义在函数中.它来自哪里?

foreach($get_prefixes as $prefix) { //This line
Run Code Online (Sandbox Code Playgroud)

如果此功能在刚刚查询不同,"sku"并且"sku "那么你甚至不需要两个功能,只需使用一个OR查询(首选)或者两个查询,如果你想要两个结果集是独立的.

  • 在这种情况下,您可能应该将其重构为另一个参数.你也可以传入`$ objDb`以避免讨厌的全局.怎么样`showColumns($ objDb,$ table,'sku _');`? (3认同)