codeliner / php-equalsbuilder
PHP 的 EqualsBuilder。
1.2.0
2014-06-13 16:12 UTC
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-10 01:21:05 UTC
README
PHP 的 EqualsBuilder
安装
安装 codeliner/php-equalsbuilder 使用 composer。有关 composer 文档,请参阅 getcomposer.org。将以下要求添加到您的 composer.json 中
"codeliner/php-equalsbuilder" : "1.2.*"
使用方法
使用 EqualsBuilder 一次比较任意数量的值对。
echo EqualsBuilder::create() ->append('equals', 'equals') ->append(1, 1) ->append(1, '1') ->equals() ? "All value pairs are equal" : "At least one value pair is not equal"; //Output: All value pairs are equal
您还可以启用严格模式来比较值类型。
echo EqualsBuilder::create() ->append('equals', 'equals') ->append(1, 1) ->append(1, '1') ->strict() //enable strict mode ->equals() ? "All value pairs are equal" : "At least one value pair is not equal"; //Output: At least one value pair is not equal
如果您只提供第一个参数,则第二个参数设置为 true。这使您能够同时使用对象比较方法和 EqualsBuilder。
echo EqualsBuilder::create() ->append($vo->sameValueAs($otherVo)) ->append(1, 1) ->append(1, '1') ->equals() ? "All value pairs are equal" : "At least one value pair is not equal"; //Output: All value pairs are equal
您还可以提供第三个参数作为回调,该回调与值对一起调用。回调应返回一个布尔值。
echo EqualsBuilder::create() ->append($vo, $otherVo, function($a, $b) { return $a->sameValueAs($b);}) ->append(1, 1) ->append(1, '1') ->equals() ? "All value pairs are equal" : "At least one value pair is not equal"; //Output: All value pairs are equal
当 $a 和 $b 是数组列表(具有连续整数键的数组,从 0 开始到 count - 1 结束)时,回调选项特别有趣。在这种情况下,对于列表 $a 中的每个项目以及 $b 中相应的项目,都会调用回调,假设 count($a) == count($b) 为真。
$aList = array($vo1, $vo2, $vo3); $bList = array($vo1, $vo2, $vo3); echo EqualsBuilder::create() ->append($aList, $bList, function($aVO, $bVO) { return $aVO->sameValueAs($bVO);}) ->append(1, 1) ->append(1, '1') ->equals() ? "All value pairs are equal" : "At least one value pair is not equal"; //Output: All value pairs are equal