回到最上方

文件

Helpers 函式

陣列

array_add

array_add 函式可以將指定的 鍵 (key) / 值 (value) 加入到陣列中,如果陣列已有此 "鍵 (key)" 則不做加入的動作。

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

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

array_divide

array_divide 函式回傳兩組陣列,一個陣列是原 "鍵 (key)" 的陣列,而另一個是原 "值 (value)" 的陣列。

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

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

array_dot

array_dot 函式將多維陣列轉換成一維陣列,並使用 "逗號 (.)" 去顯示原陣列資料的深度

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

$array = array_dot($array);

// array('foo.bar' => 'baz');

array_except

array_except 方法可以移除陣列中指定的 "鍵 (key)" 值。

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

array_fetch

array_fetch 方法可以撈取巢狀陣列的指定 "鍵 (key)" 值。

$array = array(array('name' => 'Taylor'), array('name' => 'Dayle'));

var_dump(array_fetch($array, 'name'));

// array('Taylor', 'Dayle');

array_first

array_first 方法回傳第一個符合條件的陣列資料。

$array = array(100, 200, 300);

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

也可以在第三個參數設定預設值:

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

array_flatten

array_flatten 方法可以取得多維陣列所有最後的 "值 (value)"。

$array = array('name' => 'Joe', 'languages' => array('PHP', 'Ruby'));

$array = array_flatten($array);

// array('Joe', 'PHP', 'Ruby');

array_forget

array_forget 方法會移除使用 "逗號 (.)" 所指定的陣列深度值

$array = array('names' => array('joe' => array('programmer')));

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

array_get

array_get 方法使用 "逗號 (.)" 去取得原陣列深度的資料。

$array = array('names' => array('joe' => array('programmer')));

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

array_only

array_only 方法可以取得陣列第一層中,指定的 "鍵 (key)" 資料。

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

$array = array_only($array, array('name', 'votes'));
// array('name' => 'Joe', 'votes' => 1);

array_pluck

array_pluck 方法可以取得 row 資料集陣列中,指定的 "鍵 (key)" 資料

$array = array(array('name' => 'Taylor'), array('name' => 'Dayle'));

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

// array('Taylor', 'Dayle');

array_pull

array_pull 方法可以取得指定的 "鍵 (key)" 資料,並移除原陣列 指定的 "鍵 (key)" 資料

$array = array('name' => 'Taylor', 'age' => 27);

$name = array_pull($array, 'name');
/*
    $name  : array('name' => 'Taylor');
    $array : array('age' => 27);
*/

array_set

array_set 方法使用 "逗號 (.)" 設定所指定的陣列深度的資料

$array = array('names' => array('programmer' => 'Joe'));

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

array_sort

array_sort 方法會在閉合函式中回傳排序後的資料。

$array = array(
    array('name' => 'Jill'),
    array('name' => 'Barry'),
);

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

head

回傳陣列中第一個元素的資料,經常在方法鏈中使用。

$first = head(Array('foo' , 'bar'));
// 'foo';

$first = head(Array('foo'=> array(1,2) , 'bar'));
// array(1,2)

last

回傳陣列中最後一個元素的資料,經常在方法鏈中使用。

$last = last(Array('foo' , 'bar'));
// 'bar';

$last = last(Array('foo' , 'bar'=> array(3,4)));
// array(3,4)

路徑

app_path

app_path() 方法可以取得 app 目錄的完整路徑。

base_path

base_path() 方法可以取得安裝目錄的完整路徑。

public_path

public_path() 方法可以取得 public 目錄的完整路徑。

storage_path

storage_path() 方法可以取得 app/storage 目錄的完整路徑。

字串

camel_case

轉換給予的字串為 駝峰式大小寫 (camelCase) 形式。

$camel = camel_case('foo_bar');

// fooBar

class_basename

取得不包含 "命名空間(namespace)" 的類別名稱。

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

// Baz

e

在指定字串執行 htmlentites 方法,且支援 UTF-8 字串編碼。

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

ends_with

判斷字串結尾是否有指定的字串。

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

snake_case

轉換給予的字串為 蛇底式小寫 (snake_case) 形式。

$snake = snake_case('fooBar');

// foo_bar

starts_with

判斷字串開頭是否有指定的字串。

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

str_contains

判斷字串中是否有指定的字串。

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

str_finish

指定字串結尾的最後字元,並確保只有一個指定的結數字元。

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

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

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

str_is

判斷字串是否有符合指定的 模式 (pattern),星號代表萬用字元。

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

str_plural

轉換字串為複數形式 (僅限英文)。

$plural = str_plural('car');
// cars

str_random

產生指定長度的亂數字串。

$string = str_random(40);
// string(40) "1l8P1t9R0bwaDl7RhnYqGovx5ZDp32R0rcPrFLPv"

str_singular

轉換字串為單數形式 (僅限英文)。

$singular = str_singular('cars');
// car

studly_case

轉換給予的字串為 首字大寫 (StudlyCase) 形式。

$value = studly_case('foo_bar');

// FooBar

trans

取得語言資料,與 Lang::get 方法相同。

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

trans_choice

取得指定單複數型態語言資料,與 Lang::choice 方法相同。

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

網址

action

產生指定控制器動作的網址。

$url = action('HomeController@getIndex', $params);
// http://example.com/homes/param

asset

產生存取資源的網址

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

link_to

產生連結到指定網址的 HTML 連結

echo link_to('foo/bar', '標題', $attributes = array(), $secure = null);
// <a href="http://example.com/foo/bar">標題</a>

link_to_asset

產生連結到指定資源的 HTML 連結

echo link_to_asset('foo/bar.zip', '標題', $attributes = array(), $secure = null);
// <a href="http://example.com/foo/bar.zip">標題</a>

echo link_to_asset('foo/bar.zip', '標題', $attributes = array('title'=>'檔案'), $secure = true);
// <a href="https://example.com/foo/bar.zip" title="檔案">標題</a>

link_to_route

產生連結到指定路由 (Route) 的 HTML 連結

echo link_to_route('route.name', '標題', $parameters = array(), $attributes = array('title'=>'連結說明'));
// <a href="http://example.com/route_name" title="連結說明">標題</a>

link_to_action

產生連結到指定控制器 (Controller) 的 HTML 連結

echo link_to_action('HomeController@getIndex', $title, $parameters = array(), $attributes = array('title'=>'連結說明'));
// <a href="http://example.com/homes" title="連結說明">標題</a>

secure_asset

產生使用 HTTPS 存取資源的網址。

echo secure_asset('foo/bar.zip', $title, $attributes = array());
// https://example.com/foo/bar.zip

secure_url

產生使用 HTTPS 存取路徑的網址。

echo secure_url('foo/bar', $parameters = array());
// https://example.com/foo/bar

url

產生完整的存取路徑網址。

echo url('foo/bar', $parameters = array(), $secure = null);
// http://example.com/foo/bar

echo url('foo/bar', $parameters = array('param1','param2'), $secure = true);
// https://example.com/foo/bar/param1/param2

其他雜項

csrf_token

取得目前的 CSRF 標記 (token)

$token = csrf_token();

dd

列印指定的變數,並中斷執行的程式。

dd($value);

value

如果給予 value() 方法的值是 閉合函式,則取得 閉合函式 的回傳直,否則直接回傳傳入的變數值。

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

$value = value(function() { });
// NULL

$value = value(array(123));
// array(123)

$value = value('input_string');
// input_string

with

回傳指定的物件,經常在方法鏈中使用。

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

討論