我正在尝试简化我的长方法。我在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);
}
答案 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
}