助手函数


数组助手

array_add

array_add 函数将一个指定键的元素添加进数组,如果数组中已有该键,则不添加。

$array = array('foo' => 'bar');

  1. $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 获取多维数组的最终值,参数为 第一维的键.第二维的键.第三维的键.... 的形式,指定的维数 数组的形式需一致,否则Laravel将抛出'Undefined index'。

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

array_first

array_first 方法返回第一个 满足匿名函数(该匿名函数作为参数传入) 返回true的元素的值。

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

array_first的第三个参数为该操作指定默认返回值,若匿名函数永远不可能返回true将返回默认值。

  1. $value = array_first($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 = array_forget($array, 'names.joe');

array_get

array_get 方法获取数组内指定的元素,通过 键.键.键 的形式来寻找指定的元素

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

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. }));

head

返回数组的第一个元素,内部实际调用reset方法。经常在链式调用时使用。

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

last

返回数组的最后一个元素,内部实际调用end方法。经常在链式调用时使用。

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

应用路径

app_path

获取 app (/app[laravel4]) 目录的绝对路径。

base_path

获取laravel应用所在的绝对路径。

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

htmlentites 的简写,以utf8格式转换字符串。

  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

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

将字符串转为 StudlyCase 格式。

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

trans

Translate a given language line. Alias of Lang::get.

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

trans_choice

Tranlate a given language line with inflection. Alias of Lang::choice.

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

URLs

action

从指定的控制器的方法生成url。

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

路由

为命名路由生成URL。

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

asset

生成一个指向样式文件的url。

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

link_to

生成一个a标签的html代码,并能为该a标签指定详细信息。

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

link_to_asset

生成一个指向样式文件的a标签。

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

link_to_route

生成一个指向特定路由的a标签。

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

link_to_action

生成一个指向特定控制器方法的a标签。

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

secure_asset

生成一个指向样式文件的a标签并使用使用 HTTPS 安全链接。

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

secure_url

生成一个完全自定义的a标签并使用 HTTPS 安全链接。

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

url

生成一个完全自定义的a标签。

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

杂项

csrf_token

获取当前 CSRF 标记。

  1. $token = csrf_token();

dd

格式化输出指定的变量,并结束脚本执行。

  1. dd($value);

value

如果参数为 Closure,value函数将返回 Closure 的返回值。 否则,返回参数本。

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

with

参数为对象,直接返回该对象,在PHP 5.3.x中进行链式调用很有用。

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