Esta biblioteca proporciona seis manejadores diferentes para revertir la salida de la función print_r de PHP a las variables originales. Si no hay un controlador disponible para un tipo, se devuelve como string .
string"" ) se trata como null (ver NullHandler )boolean )array de niveles múltiples debe ser compatible con el tipo de tipospublic , protected y private de los objetos deben ser compatibles con el tipos El paquete está disponible a través del compositor.
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" Todos los manejadores se definen como final , pero gracias a la inyección de dependencia, es fácil cambiar el comportamiento de la biblioteca y su tipos de clasificación. Digamos que quieres mantener todas las cuerdas vacías "" como cadena, no null . Todo lo que tienes que hacer es crear tu propio HandlerRunner sin NullHandler .
<?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 "" De la misma manera de eliminar NullHandler , puede agregar sus propios manejadores. Todo lo que tiene que hacer es asegurarse de que implementa ReversePrintRHandlerHandlerInterface y está listo para comenzar.
La biblioteca está siguiendo a Semver. Todas las actualizaciones menores y de parches son compatibles con versiones anteriores.
Consulte el archivo de licencia para obtener más información.