simivar / reverse-print-r
一个库,用于将PHP的print_r
输出的结果逆转换为PHP对象、数组和标量值。
v1.0.1
2020-03-20 12:57 UTC
Requires
- php: ^7.1
Requires (Dev)
- ergebnis/composer-normalize: ^2.2
- friendsofphp/php-cs-fixer: ^2.16
- infection/infection: ^0.15.3
- phpbench/phpbench: @dev
- phpunit/phpunit: ^9.0
- vimeo/psalm: ^3.9
This package is auto-updated.
Last update: 2024-09-15 10:13:28 UTC
README
此库提供六个不同的处理程序,用于将PHP的print_r
函数的输出逆转换回原始变量。如果没有为某种类型提供处理程序,则将其作为string
返回。
假设
- 所有值都应该进行类型转换,而不是作为
string
返回 - 空字符串(
""
)被视为null
(请参阅NullHandler
) - 整数被视为整数(不支持
boolean
) - 多级
array
必须支持类型转换 public
、protected
和private
属性的对象必须支持类型转换
已知问题
- 不支持对象继承
安装
此包可通过Composer获取。
composer require simivar/reverse-print-r
使用方法
<?php $print_r_output = print_r([ 'string' => 'some text', 'integer' => 1, 'float' => 2.3, 'subArray' => [ 'Hello World.', ], ], true); $reverser = new \ReversePrintR\ReversePrintR($print_r_output); echo $reverser->reverse()['float']; // outputs "2.3"
更改处理程序的行为
所有处理程序都定义为final
,但得益于依赖注入,可以轻松更改库及其类型转换的行为。假设您想保留所有空字符串""
作为字符串,而不是null
。您只需创建自己的不带NullHandler
的HandlerRunner
即可。
<?php $print_r_output = print_r([ 'string' => '', 'null' => null, ], true); $handlerRunner = new \ReversePrintR\HandlerRunner( new \ReversePrintR\Handler\FloatHandler(), new \ReversePrintR\Handler\IntegerHandler(), new \ReversePrintR\Handler\ArrayHandler(), new \ReversePrintR\Handler\ObjectHandler() ); $reverser = new \ReversePrintR\ReversePrintR($print_r_output, $handlerRunner); var_dump($reverser->reverse()['null']); // outputs ""
自定义处理程序
与移除NullHandler
相同的方式,您可以添加自己的处理程序。您只需确保它实现了\ReversePrintR\Handler\HandlerInterface
即可。
版本控制
库遵循Semver。所有次要和补丁更新都是向后兼容的。
许可证
有关更多信息,请参阅许可证文件。