Skip to content
Prev Previous commit
Next Next commit
Add more tests for array_any
  • Loading branch information
joshuaruesweg committed May 30, 2024
commit 72aeb73e34ff81bfa3cd4cec0e56f4ecf5b30fb6
62 changes: 62 additions & 0 deletions ext/standard/tests/array/array_any_basic.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,69 @@ $array1 = [
"d" => 4,
"e" => 5,
];

$array2 = [
1, 2, 3, 4, 5
];

function even($input) {
return $input % 2 === 0;
}

class EvenClass {
public static function even($input) {
return $input % 2 === 0;
}
}


var_dump(array_any($array1, fn($value) => $value > 3));
var_dump(array_any($array2, fn($value) => $value > 3));
var_dump(array_any($array2, fn($value) => $value > 5));
var_dump(array_any([], fn($value) => true));
var_dump(array_any($array1, fn($value, $key) => $key === "c"));
var_dump(array_any($array1, fn($value, $key) => false));

echo '*** Test aborting after found result ***' . PHP_EOL;
try {
var_dump(array_any($array2, function ($value) {
if ($value > 1) {
throw new Exception("Test-Exception");
}

return true;
}));
} catch (Exception) {
var_dump("Unexpected Exception");
}

echo '*** Test aborting with exception ***' . PHP_EOL;
try {
var_dump(array_any($array2, function ($value) {
if ($value === 2) {
throw new Exception("Test-Exception");
}

var_dump($value);

return false;
}));
} catch (Exception) {
var_dump("Catched Exception");
}

var_dump(array_any($array1, 'even'));

var_dump(array_any($array1, function($value) {
// return nothing
}));

var_dump(array_any($array1, [
'EvenClass',
'even'
]));

var_dump(array_any($array1, "EvenClass::even"));
?>
--EXPECT--
bool(true)
Expand All @@ -27,3 +80,12 @@ bool(false)
bool(false)
bool(true)
bool(false)
*** Test aborting after found result ***
bool(true)
*** Test aborting with exception ***
int(1)
string(17) "Catched Exception"
bool(true)
bool(false)
bool(true)
bool(true)