Exemplo n.º 1
0
 public function testAny()
 {
     $this->assertTrue(any([true, false, false]));
     $this->assertTrue(any([false, 1, false]));
     $this->assertTrue(any([false, false, [1]]));
     $this->assertTrue(any(['a', false, false]));
     $this->assertTrue(any([false, new \StdClass(), false]));
     $this->assertFalse(any([]));
     $this->assertFalse(any([null, false, false]));
     $this->assertFalse(any([null, [], false]));
     $this->assertFalse(any([null, false, '']));
     $this->assertFalse(any([0, false, false]));
     $this->assertTrue(any([18, 19, 20], function ($v) {
         return $v === 18;
     }));
     $this->assertFalse(any([19, 20, 21], function ($v) {
         return $v === 18;
     }));
     $this->assertTrue(call_user_func(any, [true, false, false]));
     $this->assertEquals('\\nspl\\a\\any', any);
 }
Exemplo n.º 2
0
Arquivo: a.php Projeto: ihor/Nspl
use function nspl\a\keySorted;
use function nspl\a\indexed;
use function nspl\a\take;
use function nspl\a\reorder;
use const nspl\op\eq;
use const nspl\op\object;
use function nspl\op\itemGetter;
use function nspl\op\propertyGetter;
use function nspl\f\partial;
$users = map(object, [array('id' => 1, 'name' => 'John', 'age' => 15), array('id' => 2, 'name' => 'Jack', 'age' => 35), array('id' => 3, 'name' => 'Sarah', 'age' => 25), array('id' => 4, 'name' => 'Norah', 'age' => 20), array('id' => 5, 'name' => 'Michael', 'age' => 30), array('id' => 6, 'name' => 'Bob', 'age' => 30)]);
// 1. Check all statuses are "ready"
$statuses = ['ready', 'ready', 'not-ready'];
$ready = all($statuses, partial(eq, 'ready'));
echo $ready ? "Everybody is ready\n" : "Someone is not ready\n";
// 2. Check at least someone is "ready"
$someoneIsReady = any($statuses, partial(eq, 'ready'));
echo $someoneIsReady ? "Someone is ready\n" : "Everybody is not ready\n";
// 3. Get user ids
$userIds = map(propertyGetter('id'), $users);
echo sprintf("User ids are: %s\n", implode(', ', $userIds));
// 4. Count users younger than 25
$youngerThan25Count = reduce(function ($count, $user) {
    return $count + (int) ($user->age < 25);
}, $users);
echo sprintf("%s users are younger than 25\n", $youngerThan25Count);
// 5. Get users younger than 25
$youngerThan25 = filter(function ($user) {
    return $user->age < 25;
}, $users);
echo "These users are younger than 25:\n";
foreach ($youngerThan25 as $user) {