стиль кодирования — Как уменьшить уровень отступа в данном фрагменте кода PHP

Как изменить этот фрагмент кода, чтобы уменьшить уровень отступов на единицу?
Мне просто интересно, возможно ли в PHP писать этот код по-разному, с одним уровнем отступа.

Код:

private function isArrayMatchingCriteria(array $array) {
foreach($array as $element) {
if (! $this->isElementMatchingCriteria($element) {
return false;
}
}
return true;
}

Пожалуйста, примите во внимание, что:

  • этот код не всегда перебирает все элементы массива — поэтому комбинация count + array_filter / array_map не одинакова
  • это легко сделать, введя выделенный атрибут объекта, служащий флагом, но я ищу способ, не вводя новые атрибуты

1

Решение

Если вы просто хотите удалить отступы, вы можете использовать:

private function isArrayMatchingCriteria(array $array) {
foreach($array as $element) {
if (!$this->isElementMatchingCriteria($element)) return false;
}
return true;
}
0

Другие решения

Используйте array_map, что-то вроде этого:

class MyClass
{
private function isElementMatchingCriteria( $element )
{
// DUMMY, replace with actual code
if ( $element == "foo" || $element == "bar" ) {
return true;
} else {
return false;
}
} // end is Element Matching Criteria

public function isArrayMatchingCriteria(array $array)
{
$results = array_map( array( $this, "isElementMatchingCriteria"), $array );
$isMatch = true;
foreach ( $results as $result ) {
$isMatch = $isMatch && $result;
} // end foreach
return $isMatch;
} // end function isArrayMatchingCriteria
} // end MyClass

$myClass = new MyClass();
$array = array( "foo", "bar", "baz" );
$result = $myClass->isArrayMatchingCriteria( $array );
print_r( $result );
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector