angle/

伪帮助您使用PHP管理半真半假的情况

v1.0.5 2019-03-11 14:32 UTC

This package is auto-updated.

Last update: 2024-09-12 04:23:46 UTC


README

  • 小型库(总行数小于200行,向全局命名空间添加2个函数)
  • 无依赖
  • 完全测试
  • 需要PHP版本 ^7.0

函数

falsy(...$vars) : bool

当变量为伪时返回false。

truthy(...$vars) : bool

只有当所有变量都为真时返回true(伪的反义词)。

示例

如果任何内容为伪,函数返回true。

falsy(true, false, null); // true
truthy(true, false, null); // false

如果所有变量都为真,函数返回false。

falsy(true, 1, [1]); // false
truthy(true, 1, [1]); // true

空字符串和空数组为伪。

falsy('0', '', [], ['']); // true
truthy('0', '', [], ['']); // false

// Note: (bool) [''] returns true in plain PHP. Falsy interprets it as false, as it should.

数组将被递归审计。

$array = [
    'foo' => false,
    'bar'=> [
        'baz' => false
    ]
];

falsy($array); // true
truthy($array); // false

$array = [
    'foo' => true,
    'bar'=> [
        'baz' => 1
    ]
];

falsy($array); // false
truthy($array); // true

对象将根据其属性进行审计。

$object = new stdClass;

falsy($object); // true
truthy($object); // false

$object->foo = false;
$object->bar = null;
$object->baz = 0;

falsy($object); // true
truthy($object); // false

$object->foo = true;
$object->bar = 'string';
$object->baz = 1;

falsy($object); // false
truthy($object); // true

闭包将根据其返回值进行审计。

$void = function () { return; };

falsy($void); // true
truthy($void); // false

$false = function () { return false; };

falsy($false); // true
truthy($false); // false

$string = function () { return 'string'; };

falsy($string); // false
truthy($string); // true

falsy($void, $false, $string); // true
truthy($void, $false, $string); // false

最后,您可以传递所需的所有语句。

falsy(
    false,
    null,
    0,
    0.0,
    '0',
    [],
    [''], // Php would consider this as being true, but really, is it? No.
    ['' => ''],
    [false, null],
    ['' => '', 0 => ['key' => null, 'foo' => [''], 'empty' => []]], // Array keys are ignored
    new stdClass, // Objects with empty attributes are falsy
    function () { return; }, // Void closures are falsy
    function () { return false; },
    function () { return null; },
    function () { return ''; },
    function () { return 0; },
    function () { return []; },
    function () { return ['']; }
); // true

$object = new stdClass;
$object->foo = 'bar';

truthy(
    true,
    1,
    0.1,
    '1',
    ['foo'],
    ['foo' => 'bar'],
    [true],
    $object,
    function () { return true; },
    function () { return 1; },
    function () { return 0.1; },
    function () { return '1'; },
    function () { return ['foo']; },
    function () { return ['foo' => 'bar']; },
    function () { return [true]; },
    function () use ($object) { return $object; }
); // true

测试

通过执行以下命令运行测试套件

    composer install
    ./vendor/bin/phpunit

贡献

欢迎贡献!请随时提交pull请求。

许可证

MIT许可证

版权所有 © 2019 Angle Software