Arr::get() 对比 data_get() 在 Laravel 5.7
Arr::get() vs data_get() in Laravel 5.7
借助 data_get()
辅助函数,我们可以使用点 .
表示法获取嵌套数组的值,如下所示:
$my_arr = [
'a' => ['lower' => 'aa', 'upper' => 'AAA',],
'b' => ['lower' => 'bbb', 'upper' => 'BBBBB',],
];
因此,我可以通过这样做来降低 a
。
data_get($my_arr, 'a.lower');
你还做了以下事情。
Arr::get('a.lower');
万一我只想得到数组的第一层。我只能两者兼顾:
data_get($my_arr, 'a');
或
Arr::get($my_arr, 'a');
你推荐我哪一个,为什么?我只是想不断改进我的 Laravel 体验,并从高级开发人员那里获得好的建议,以选择目前的最佳选择。
根据上下文来决定使用哪一个。
1。通配符匹配
如果您需要在索引中使用通配符,则必须使用 data_get
,因为 Arr::get
不支持通配符。
示例:
Arr::get($my_arr, '*.lower'); // null
data_get($my_arr, '*.lower'); // ["aa", "bbb"]
2。变量类型
Arr::get
只是假设您的变量是一个数组。因此,如果使用对象,则必须使用 data_get
。但是,如果您确定您的变量是一个数组并且您不需要通配符,您应该继续 Arr::get
以避免来自 data_get
的不必要检查,该检查评估您的变量是对象还是数组.
也可以用array_get()
的方法,和Arr::get()
一样。当然,如果您安装了 laravel/helpers 软件包。
检查 ./vendor/laravel/helpers/src/helpers.php
文件。
借助 data_get()
辅助函数,我们可以使用点 .
表示法获取嵌套数组的值,如下所示:
$my_arr = [
'a' => ['lower' => 'aa', 'upper' => 'AAA',],
'b' => ['lower' => 'bbb', 'upper' => 'BBBBB',],
];
因此,我可以通过这样做来降低 a
。
data_get($my_arr, 'a.lower');
你还做了以下事情。
Arr::get('a.lower');
万一我只想得到数组的第一层。我只能两者兼顾:
data_get($my_arr, 'a');
或
Arr::get($my_arr, 'a');
你推荐我哪一个,为什么?我只是想不断改进我的 Laravel 体验,并从高级开发人员那里获得好的建议,以选择目前的最佳选择。
根据上下文来决定使用哪一个。
1。通配符匹配
如果您需要在索引中使用通配符,则必须使用 data_get
,因为 Arr::get
不支持通配符。
示例:
Arr::get($my_arr, '*.lower'); // null
data_get($my_arr, '*.lower'); // ["aa", "bbb"]
2。变量类型
Arr::get
只是假设您的变量是一个数组。因此,如果使用对象,则必须使用 data_get
。但是,如果您确定您的变量是一个数组并且您不需要通配符,您应该继续 Arr::get
以避免来自 data_get
的不必要检查,该检查评估您的变量是对象还是数组.
也可以用array_get()
的方法,和Arr::get()
一样。当然,如果您安装了 laravel/helpers 软件包。
检查 ./vendor/laravel/helpers/src/helpers.php
文件。