如何返回“继续”;使用另一个公共功能的循环?

时间:2019-03-12 04:25:01

标签: php

我正在尝试简化我的长方法。我在if中有一个forearch,我想用一种类似于

的方法替换它。
/**
 *
 * @return skips majority of equities to reduce computations and tests limited equities
 */
public static function onlyTestLimitedEquities($equity_symbol)
{
    if ($_SERVER['LOGNAME'] === ConstEQ::LOCALHOST) {
        if (HelperEQ::getOurSymbols($equity_symbol) == 0) {
            continue;
        }
    }
} 

if语句在foreach中工作正常:

if ($_SERVER['LOGNAME'] === ConstEQ::LOCALHOST) {
    if (HelperEQ::getOurSymbols($equity_symbol) == 0) {
        continue;
    }
}

由于continue;不在foreach中,如何返回EQ::onlyTestLimitedEquities($equity_symbol);,或者如何创建/调用此方法?

循环

在另一种方法中,我有这个foreach,其中可以调用EQ::onlyTestLimitedEquities

foreach ($large_all_data_object->large_all_symbols_array as $equity_symbol => $equity_symbol_array) {

    EQ::onlyTestLimitedEquities($equity_symbol);

}

1 个答案:

答案 0 :(得分:3)

您需要在循环的地方放置continue。不能放置在其他函数中。

但是,您可以将函数更改为返回布尔值,然后在主代码中可以在函数返回continue的情况下执行true

public static function onlyTestLimitedEquities($equity_symbol)
{
    return $_SERVER['LOGNAME'] === ConstEQ::LOCALHOST
        && HelperEQ::getOurSymbols($equity_symbol) == 0;
} 

...并在调用代码中:

foreach ($large_all_data_object->large_all_symbols_array as $equity_symbol => $equity_symbol_array) {
    // ...

    if (EQ::onlyTestLimitedEquities($equity_symbol)) continue;

    // ...etc
}