Skip to content

辅助函数

数组

array_add

array_add 函数在给定键不存在于数组中时,添加一个键/值对。

php
$array = ['foo' => 'bar'];

$array = array_add($array, 'key', 'value');

array_divide

array_divide 函数返回两个数组,一个包含原数组的键,另一个包含原数组的值。

php
$array = ['foo' => 'bar'];

list($keys, $values) = array_divide($array);

array_dot

array_dot 函数将多维数组展平为单级数组,使用“点”符号表示深度。

php
$array = ['foo' => ['bar' => 'baz']];

$array = array_dot($array);

// ['foo.bar' => 'baz'];

array_except

array_except 方法从数组中移除给定的键/值对。

php
$array = array_except($array, ['keys', 'to', 'remove']);

array_fetch

array_fetch 方法返回一个包含选定嵌套元素的展平数组。

php
$array = [
	['developer' => ['name' => 'Taylor']],
	['developer' => ['name' => 'Dayle']]
];

$array = array_fetch($array, 'developer.name');

// ['Taylor', 'Dayle'];

array_first

array_first 方法返回通过给定真值测试的数组的第一个元素。

php
$array = [100, 200, 300];

$value = array_first($array, function($key, $value)
{
	return $value >= 150;
});

还可以将默认值作为第三个参数传递:

php
$value = array_first($array, $callback, $default);

array_last

array_last 方法返回通过给定真值测试的数组的最后一个元素。

php
$array = [350, 400, 500, 300, 200, 100];

$value = array_last($array, function($key, $value)
{
	return $value > 350;
});

// 500

还可以将默认值作为第三个参数传递:

php
$value = array_last($array, $callback, $default);

array_flatten

array_flatten 方法将多维数组展平为单级。

php
$array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']];

$array = array_flatten($array);

// ['Joe', 'PHP', 'Ruby'];

array_forget

array_forget 方法使用“点”符号从深度嵌套的数组中移除给定的键/值对。

php
$array = ['names' => ['joe' => ['programmer']]];

array_forget($array, 'names.joe');

array_get

array_get 方法使用“点”符号从深度嵌套的数组中检索给定值。

php
$array = ['names' => ['joe' => ['programmer']]];

$value = array_get($array, 'names.joe');

$value = array_get($array, 'names.john', 'default');
lightbulb

想要类似 array_get 但用于对象的功能?使用 object_get

array_only

array_only 方法将仅返回数组中指定的键/值对。

php
$array = ['name' => 'Joe', 'age' => 27, 'votes' => 1];

$array = array_only($array, ['name', 'votes']);

array_pluck

array_pluck 方法将从数组中提取给定键/值对的列表。

php
$array = [['name' => 'Taylor'], ['name' => 'Dayle']];

$array = array_pluck($array, 'name');

// ['Taylor', 'Dayle'];

array_pull

array_pull 方法将从数组中返回给定的键/值对,并将其移除。

php
$array = ['name' => 'Taylor', 'age' => 27];

$name = array_pull($array, 'name');

array_set

array_set 方法使用“点”符号在深度嵌套的数组中设置一个值。

php
$array = ['names' => ['programmer' => 'Joe']];

array_set($array, 'names.editor', 'Taylor');

array_sort

array_sort 方法通过给定的闭包结果对数组进行排序。

php
$array = [
	['name' => 'Jill'],
	['name' => 'Barry']
];

$array = array_values(array_sort($array, function($value)
{
	return $value['name'];
}));

array_where

使用给定的闭包过滤数组。

php
$array = [100, '200', 300, '400', 500];

$array = array_where($array, function($key, $value)
{
	return is_string($value);
});

// Array ( [1] => 200 [3] => 400 )

返回数组中的第一个元素。

php
$first = head($this->returnsArray('foo'));

last

返回数组中的最后一个元素。适用于方法链。

php
$last = last($this->returnsArray('foo'));

路径

app_path

获取 app 目录的完整路径。

php
$path = app_path();

base_path

获取应用程序安装根目录的完整路径。

config_path

获取 config 目录的完整路径。

public_path

获取 public 目录的完整路径。

storage_path

获取 storage 目录的完整路径。

路由

get

使用路由器注册一个新的 GET 路由。

php
get('/', function() { return 'Hello World'; });

post

使用路由器注册一个新的 POST 路由。

php
post('foo/bar', 'FooController@action');

put

使用路由器注册一个新的 PUT 路由。

php
put('foo/bar', 'FooController@action');

patch

使用路由器注册一个新的 PATCH 路由。

php
patch('foo/bar', 'FooController@action');

delete

使用路由器注册一个新的 DELETE 路由。

php
delete('foo/bar', 'FooController@action');

resource

使用路由器注册一个新的 RESTful 资源路由。

php
resource('foo', 'FooController');

字符串

camel_case

将给定字符串转换为 camelCase

php
$camel = camel_case('foo_bar');

// fooBar

class_basename

获取给定类的类名,不带任何命名空间名称。

php
$class = class_basename('Foo\Bar\Baz');

// Baz

e

对给定字符串运行 htmlentities,支持 UTF-8。

php
$entities = e('<html>foo</html>');

ends_with

确定给定的字符串是否以给定的子字符串结尾。

php
$value = ends_with('This is my name', 'name');

snake_case

将给定字符串转换为 snake_case

php
$snake = snake_case('fooBar');

// foo_bar

str_limit

限制字符串中的字符数。

php
str_limit($value, $limit = 100, $end = '...')

示例:

php
$value = str_limit('The PHP framework for web artisans.', 7);

// The PHP...

starts_with

确定给定的字符串是否以给定的子字符串开头。

php
$value = starts_with('This is my name', 'This');

str_contains

确定给定的字符串是否包含给定的子字符串。

php
$value = str_contains('This is my name', 'my');

str_finish

在字符串末尾添加给定子字符串的单个实例。移除任何额外的实例。

php
$string = str_finish('this/string', '/');

// this/string/

str_is

确定给定字符串是否匹配给定模式。可以使用星号表示通配符。

php
$value = str_is('foo*', 'foobar');

str_plural

将字符串转换为其复数形式(仅限英语)。

php
$plural = str_plural('car');

str_random

生成给定长度的随机字符串。

php
$string = str_random(40);

str_singular

将字符串转换为其单数形式(仅限英语)。

php
$singular = str_singular('cars');

str_slug

从给定字符串生成 URL 友好的“slug”。

php
str_slug($title, $separator);

示例:

php
$title = str_slug("Laravel 5 Framework", "-");

// laravel-5-framework

studly_case

将给定字符串转换为 StudlyCase

php
$value = studly_case('foo_bar');

// FooBar

trans

翻译给定的语言行。Lang::get 的别名。

php
$value = trans('validation.required'):

trans_choice

翻译给定的语言行并进行词形变化。Lang::choice 的别名。

php
$value = trans_choice('foo.bar', $count);

URLs

action

为给定的控制器操作生成 URL。

php
$url = action('HomeController@getIndex', $params);

route

为给定的命名路由生成 URL。

php
$url = route('routeName', $params);

asset

为资源生成 URL。

php
$url = asset('img/photo.jpg');

secure_asset

使用 HTTPS 为资源生成 URL。

php
echo secure_asset('foo/bar.zip', $title, $attributes = []);

secure_url

使用 HTTPS 生成到给定路径的完整 URL。

php
echo secure_url('foo/bar', $parameters = []);

url

生成到给定路径的完整 URL。

php
echo url('foo/bar', $parameters = [], $secure = null);

杂项

csrf_token

获取当前 CSRF 令牌的值。

php
$token = csrf_token();

dd

转储给定变量并结束脚本执行。

php
dd($value);

elixir

获取版本化的 Elixir 文件的路径。

php
elixir($file);

env

获取环境变量的值或返回默认值。

php
env('APP_ENV', 'production')

event

触发事件。

php
event('my.event');

value

如果给定值是 Closure,则返回 Closure 返回的值。否则,返回该值。

php
$value = value(function() { return 'bar'; });

view

获取给定视图路径的视图实例。

php
return view('auth.login');

with

返回给定对象。

php
$value = with(new Foo)->doWork();