Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json app()中的第二个参数->;singleton在laravel 5.4中是一个空数组_Json_Laravel_Laravel 5.4 - Fatal编程技术网

Json app()中的第二个参数->;singleton在laravel 5.4中是一个空数组

Json app()中的第二个参数->;singleton在laravel 5.4中是一个空数组,json,laravel,laravel-5.4,Json,Laravel,Laravel 5.4,我想在laravel5.4中的AppServiceProvider中注册两个singleton方法。 像这样: public function register() { app()->singleton('isJson', function ($app, $args) { dd($args); // return empty Array return is_string($args[0]) && is_array(json_dec

我想在laravel5.4中的AppServiceProvider中注册两个singleton方法。 像这样:

public function register()
{
    app()->singleton('isJson', function ($app, $args) {

        dd($args); // return empty Array

        return is_string($args[0]) && is_array(json_decode($args[0], TRUE)) && (json_last_error() == JSON_ERROR_NONE);
    });

    app()->singleton('jsonDecode', function ($app, $args) {

        dd($args); // return ['0' =>10000]

        if (!$app->make('isJson', $args)) // here I sent same array to isJson
            return $args[0];

        return array_map(function ($item) use ($app) {
            return !$app->make('isJson', [$item]) ? $item : $app->make('jsonDecode', [$item]);
        }, json_decode($args[0], TRUE));
    });
}
如您所见,我在
jsonDecode
中使用
isJson
检查发送的参数是否为json格式的文本

现在每当我调用
jsonDecode
时,例如:

app('jsonDecode', ['0' =>10000]);
jsonDecode
方法中的
args
准确地接收相同的数组,但当发送到
isJson
方法时,它总是返回一个空数组


在上述代码中,运行时发生的情况显示为注释(此
dd
方法)

这些单例怎么样?你有没有理由不为它们创建基本的帮助函数?