Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否可以返回“;继续&引用;在另一个公共方法内的for循环中?_Php - Fatal编程技术网

Php 是否可以返回“;继续&引用;在另一个公共方法内的for循环中?

Php 是否可以返回“;继续&引用;在另一个公共方法内的for循环中?,php,Php,我正试图精简我的长方法。我在forearch中有一个if,我想用一个方法替换它,类似于: /** * * @return skips majority of equities to reduce computations and tests limited equities */ public static function onlyTestLimitedEquities($equity_symbol) { if ($_SERVER['LOGNAME'] === ConstEQ::

我正试图精简我的长方法。我在
forearch
中有一个
if
,我想用一个方法替换它,类似于:

/**
 *
 * @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;
    }
}
如何返回
继续
EQ::onlyTestLimitedEquities($equity\u symbol)
将不在foreach中,或者如何创建/调用此方法

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

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

    EQ::onlyTestLimitedEquities($equity_symbol);

}

您需要将
继续
放在循环所在的位置。不能将其放置在其他函数中

但是,您可以将函数更改为返回布尔值,然后在主代码中执行
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
}

考虑到您的代码已经正常运行并且顺序相当好,您的问题可能更适合我们的姐妹站点。如果您不这样做,
continue
必须在它控制的循环中出现。