granam / strict-integer
2.1.1
2015-09-16 08:40 UTC
Requires
- php: >=5.4
- granam/exception-hierarchy: ^2.1.2
- granam/integer: ~3.0
- granam/strict-scalar: ~2.0
Requires (Dev)
- mockery/mockery: >=0.9
- phpunit/phpunit: ~4.4
README
PHP尚未提供标量类型提示(计划在PHP 7.0中实现)。
因此,如果我们想确保标量类型,类型检查类是唯一的机会。
<?php
use Granam\Strict\Integer\StrictInteger;
use Granam\Strict\Integer\Exceptions\WrongParameterType;
$integer = new StrictInteger(12345);
// int(12345)
var_dump($integer->getValue());
$integerFromString = new StrictInteger("124578", false /* explicitly non-strict */);
// int(124578)
var_dump($integerFromString->getValue());
$integerFromFloatString = new StrictInteger("987.0", false /* explicitly non-strict */);
// int(987)
var_dump($integerFromFloatString->getValue());
$integerFromTrue = new StrictInteger(true, false /* explicitly non-strict */);
// int(1)
var_dump($integerFromTrue->getValue());
$integerFromNull = new StrictInteger(null, false /* explicitly non-strict */);
// int(0)
var_dump($integerFromNull->getValue());
// ...
// The type check is strict by default, therefore only integer is allowed to be passed
try {
new StrictInteger(null);
} catch (WrongParameterType $integerException) {
// Something get wrong: On strict mode expected integer only, got NULL
die('Something get wrong: ' . $integerException->getMessage());
}