public function test_mixed_array() { $k0 = 0; $v0 = '0value'; $k1 = 'key1'; $v1 = 'key1value'; $k2 = 1; $v2 = '1value'; $k3 = 'key2'; $v3 = 'key2value'; $array = [$v0, $k1 => $v1, $v2, $k3 => $v3]; $assumed = [0 => '0value', 1 => '1value', 'key1' => 'key1value', 'key2' => 'key2value']; $this->assertEquals($assumed, $array, 'test array not as assumed'); $r0 = \F\val($k0, $array); $this->assertSame($v0, $r0, "value for `{$k0}` should be `{$v0}`, not `{$r0}`"); $r1 = \F\val($k1, $array); $this->assertSame($v1, $r1, "value for `{$k1}` should be `{$v1}`, not `{$r1}`"); $r2 = \F\val($k2, $array); $this->assertSame($v2, $r2, "value for `{$k2}` should be `{$v2}`, not `{$r2}`"); $r3 = \F\val($k3, $array); $this->assertSame($v3, $r3, "value for `{$k3}` should be `{$v3}`, not `{$r3}`"); }
<?php /** * Created by PhpStorm. * User: azder * Date: 10/08/2015 * Time: 5:04 */ error_reporting(E_ALL); require_once '../src/fun.php'; use function F\val; $values = [1, 0, -1, 'yes', 'no', 'on', 'off', '0.0']; $object = new stdClass(); $object->test = $values; $object->test2 = 'test2'; array_map(function ($value) { echo '' . $value . ' -> ' . var_export(F\tril($value), true) . PHP_EOL; }, $values); echo '-------------------' . PHP_EOL; array_map(function ($value) { echo '' . $value . ' -> ' . var_export(F\ident($value), true) . PHP_EOL; }, $values); echo '-------------------' . PHP_EOL; echo F\val(4, $values) . PHP_EOL; echo var_export(F\val('test', $object), true) . PHP_EOL; $test2 = F\curry('F\\val', 'test2'); echo var_export($test2($object), true) . PHP_EOL; echo '-------------------' . PHP_EOL; var_export(val('test', $object)); var_export(val('', $object)); var_export(val(null, $object));