From de266f945fbaf4987d7ff04ae2824bf28e7c66d7 Mon Sep 17 00:00:00 2001 From: Anton Date: Thu, 14 Apr 2022 19:50:54 +0300 Subject: [PATCH] Update README.md --- README.md | 56 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 2bc416c..dc3c772 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,52 @@ -The flexible comparation of any values. +The flexible comparation of +- index/assoc arrays +- objects/closures +- floats/NANs +- binary/text strings +- stream resources + ### Installation -Via Composer: +Via [Composer](https://getcomposer.org): ~~~bash composer require ensostudio/comparator ~~~ -### API +### Usage +~~~php +use EnsoStudio\Comparator\Comparator; +$comparator = Comparator(Comparator::EQUAL_ARRAY | Comparator::EQUAL_FLOAT); +if ($comparator->compare($value, $value2)) { + echo 'same values'; +} +~~~ +~~~php +$comparator->setFlags(Comparator::EQUAL_FLOAT); +var_dump(3 - 2.4 == 0.6, $comparator->compare(3 - 2.4, 0.6)); +// false, true + +$comparator->setFlags(Comparator::EQUAL_STRING); +var_dump('foo' == 'FOO', $comparator->compare('foo', 'FOO')); +// false, true +// Case-issensetive comparation supports only for English: +var_dump($comparator->compare('я', 'Я')); +// false + +$comparator->setFlags(Comparator::EQUAL_CLOSURE); +$createClosure = function () { + return function ($value) { + return $value * 2; + }; +}; +var_dump($createClosure() == $createClosure(), $comparator->compare($createClosure(), $createClosure())); +// false, true + +$comparator->setFlags(Comparator::EQUAL_ARRAY | Comparator::EQUAL_FLOAT); +var_dump($comparator->compare( + ['float' => 2 - 1.6, 'int' => 3], + ['int' => 3, 'float' => 0.4] +)); +// true +~~~ +### Public API ~~~php namespace EnsoStudio\Comparator; class Comparator @@ -16,11 +58,3 @@ class Comparator public function compare(mixed $value, mixed $value): bool; } ~~~ -### Usage -~~~php -use EnsoStudio\Comparator\Comparator; -$comparator = new Comparator(Comparator::EQUAL_ARRAY | Comparator::EQUAL_FLOAT); -if ($comparator->compare(['float' => 2 - 1.6, 'int' => 3], ['int' => 3, 'float' => 0.4])) { - echo 'equal values'; -} -~~~