辅助方法


数组

array_add

如果给定的键不在数组中, array_add 函数会把给定的键值对加到数组中。

  1. $array = array('foo' => 'bar');
  2. $array = array_add($array, 'key', 'value');

array_divide

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

  1. $array = array('foo' => 'bar');
  2. list($keys, $values) = array_divide($array);

array_dot

array_dot 函数把多维数组扁平化成一维数组,并用 "逗点" 符号表示深度。

  1. $array = array('foo' => array('bar' => 'baz'));
  2. $array = array_dot($array);
  3. // array('foo.bar' => 'baz');

array_except

array_except 函数从数组移除给定的键值对。

  1. $array = array_except($array, array('keys', 'to', 'remove'));

array_fetch

array_fetch 函数回传包含被选择的巢状元素的扁平化数组。

  1. $array = array(
  2. array('developer' => array('name' => 'Taylor')),
  3. array('developer' => array('name' => 'Dayle')),
  4. );
  5. $array = array_fetch($array, 'developer.name');
  6. // array('Taylor', 'Dayle');

array_first

array_first 函数回传数组中第一个通过给定的测试为真的元素。

  1. $array = array(100, 200, 300);
  2. $value = array_first($array, function($key, $value)
  3. {
  4. return $value >= 150;
  5. });

也可以传递默认值当作第三个参数:

  1. $value = array_first($array, $callback, $default);

array_last

array_last 函数回传数组中最后一个通过给定的测试为真的元素。

  1. $array = array(350, 400, 500, 300, 200, 100);
  2. $value = array_last($array, function($key, $value)
  3. {
  4. return $value > 350;
  5. });
  6. // 500

也可以传递默认值当作第三个参数:

  1. $value = array_last($array, $callback, $default);

array_flatten

array_flatten 函数将会把多维数组扁平化成一维。

  1. $array = array('name' => 'Joe', 'languages' => array('PHP', 'Ruby'));
  2. $array = array_flatten($array);
  3. // array('Joe', 'PHP', 'Ruby');

array_forget

array_forget 函数将会用 "逗点" 符号从深度巢状数组移除给定的键值对。

  1. $array = array('names' => array('joe' => array('programmer')));
  2. array_forget($array, 'names.joe');

array_get

array_get 函数将会使用 "逗点" 符号从深度巢状数组取回给定的值。

  1. $array = array('names' => array('joe' => array('programmer')));
  2. $value = array_get($array, 'names.joe');
  3. $value = array_get($array, 'names.john', 'default');

备注: 想要把 array_get 用在对象上? 请使用 object_get

array_only

array_only 函数将会只从数组回传给定的键值对。

  1. $array = array('name' => 'Joe', 'age' => 27, 'votes' => 1);
  2. $array = array_only($array, array('name', 'votes'));

array_pluck

array_pluck 函数将会从数组拉出给定键值对的清单。

  1. $array = array(array('name' => 'Taylor'), array('name' => 'Dayle'));
  2. $array = array_pluck($array, 'name');
  3. // array('Taylor', 'Dayle');

array_pull

array_pull 函数将会从数组回传给定的键值对,并移除它。

  1. $array = array('name' => 'Taylor', 'age' => 27);
  2. $name = array_pull($array, 'name');

array_set

array_set 函数将会使用 "逗点" 符号在深度巢状数组中指定值。

  1. $array = array('names' => array('programmer' => 'Joe'));
  2. array_set($array, 'names.editor', 'Taylor');

array_sort

array_sort 函数通过给定闭包的结果来排序数组。

  1. $array = array(
  2. array('name' => 'Jill'),
  3. array('name' => 'Barry'),
  4. );
  5. $array = array_values(array_sort($array, function($value)
  6. {
  7. return $value['name'];
  8. }));

array_where

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

  1. $array = array(100, '200', 300, '400', 500);
  2. $array = array_where($array, function($key, $value)
  3. {
  4. return is_string($value);
  5. });
  6. // Array ( [1] => 200 [3] => 400 )

head

回传数组中第一个元素。 对 PHP 5.3.x 的方法链很有用。

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

last

回传数组中最后一个元素。 对方法链很有用。

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

路径

app_path

取得 app 文件夹的完整路径。

  1. $path = app_path();

base_path

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

public_path

取得 public 文件夹的完整路径。

storage_path

取得 app/storage 文件夹的完整路径。

字串

camel_case

把给定的字串转换成 驼峰式命名

  1. $camel = camel_case('foo_bar');
  2. // fooBar

class_basename

取得给定类的类名称,不含任何命名空间的名称。

  1. $class = class_basename('Foo\Bar\Baz');
  2. // Baz

e

对给定字串执行 htmlentities,并支持 UTF-8。

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

ends_with

判断句子结尾是否有给定的字串。

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

snake_case

把给定的字串转换成 蛇形命名

  1. $snake = snake_case('fooBar');
  2. // foo_bar

str_limit

限制字串的字串数量。

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

例子:

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

starts_with

判断句子是否开头有给定的字串。

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

str_contains

判断句子是否有给定的字串。

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

str_finish

加一个给定字串到句子结尾。 多余一个的给定字串则移除。

  1. $string = str_finish('this/string', '/');
  2. // this/string/

str_is

判断字串是否符合给定的模式。 星号可以用来当作通配符。

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

str_plural

把字串转换成它的多数形态 (只有英文)。

  1. $plural = str_plural('car');

str_random

产生给定长度的随机字串。

  1. $string = str_random(40);

str_singular

把字串转换成它的单数形态 (只有英文)。

  1. $singular = str_singular('cars');

studly_case

把给定字串转换成 首字大写命名

  1. $value = studly_case('foo_bar');
  2. // FooBar

trans

翻译给定的语句。 等同 Lang::get

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

trans_choice

随着词形变化翻译给定的语句。 等同 Lang::choice

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

网址

action

产生给定控制器行为的网址。

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

route

产生给定路由名称的网址。

  1. $url = route('routeName', $params);

asset

产生资产的网址。

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

link_to

产生给定网址的 HTML 链接。

  1. echo link_to('foo/bar', $title, $attributes = array(), $secure = null);

link_to_asset

产生给定资产的 HTML 链接。

  1. echo link_to_asset('foo/bar.zip', $title, $attributes = array(), $secure = null);

link_to_route

产生给定路由的 HTML 链接。

  1. echo link_to_route('route.name', $title, $parameters = array(), $attributes = array());

link_to_action

产生给定控制器行为的 HTML 链接。

  1. echo link_to_action('HomeController@getIndex', $title, $parameters = array(), $attributes = array());

secure_asset

产生给定资产的 HTTPS HTML 链接。

  1. echo secure_asset('foo/bar.zip', $title, $attributes = array());

secure_url

产生给定路径的 HTTPS 完整网址。

  1. echo secure_url('foo/bar', $parameters = array());

url

产生给定路径的完整网址。

  1. echo url('foo/bar', $parameters = array(), $secure = null);

其他

csrf_token

取得现在 CSRF token 的值。

  1. $token = csrf_token();

dd

打印给定变量并结束脚本执行。

  1. dd($value);

value

如果给定的值是个 闭包, 回传 闭包 的回传值。 不是的话,则回传值。

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

with

回传给定对象。 对 PHP 5.3.x 的建构式方法链很有用。

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