Lodash-PHP 是 Lodash JS 函式庫到 PHP 的連接埠。它是一組易於使用的實用函數,適用於日常 PHP 專案。
Lodash-PHP 盡量模仿 lodash.js
Lodash-PHP 至少需要 PHP 7.2+,但始終建議使用最新版本的 PHP。
透過composer安裝Lodash-PHP:
$ composer require lodash-php/lodash-php
Lodash-PHP 中的每個方法都是單獨的函數,可以單獨匯入和使用。
<?php
use function _ each ;
each ([ 1 , 2 , 3 ], function ( int $ item ) {
var_dump ( $ item );
});
Lodash-PHP也附帶了一個可以全域使用的_
類別。
<?php
_:: each ([ 1 , 2 , 3 ], function ( int $ item ) {
var_dump ( $ item );
});
建立一個元素數組,分為長度為size
的群組。如果array
不能均勻分割,則最後的區塊將是剩餘的元素。
論點:
@param array $array array 要處理的陣列。
@param int $number [size=1] 每個區塊的長度
返回:
@return array 傳回新的區塊陣列。
例子:
<?php
use function _ chunk ;
chunk ([ ' a ' , ' b ' , ' c ' , ' d ' ], 2 )
// => [['a', 'b'], ['c', 'd']]
chunk ([ ' a ' , ' b ' , ' c ' , ' d ' ], 3 )
// => [['a', 'b', 'c'], ['d']]
建立一個刪除所有錯誤值的陣列。值false
、 null
、 0
、 ""
、 undefined
和NaN
為 false。
論點:
@param array $array 要壓縮的陣列。
返回:
@return array 傳回過濾值的新陣列。
例子:
<?php
use function _ compact ;
compact ([ 0 , 1 , false , 2 , '' , 3 ])
// => [1, 2, 3]
建立一個新數組,將array
與任何其他數組和/或值連接起來。
論點:
@param array $array 要連接的陣列。
@param array<int, mix> $values 要連接的值。
返回:
@return array 傳回新的串聯數組。
例子:
<?php
use function _ concat ;
$ array = [ 1 ];
$ other = concat ( $ array , 2 , [ 3 ], [[ 4 ]]);
var_dump ( $ other )
// => [1, 2, 3, [4]]
var_dump ( $ array )
// => [1]
使用SameValueZero
進行相等比較,建立未包含在其他給定數組中的array
值的數組。結果值的順序和引用由第一個陣列決定。
注意:與pullAll
不同,此方法傳回一個新陣列。
論點:
@param array $array 要檢查的陣列。
@param array ...$values 要排除的值。
返回:
@return array 傳回過濾值的新陣列。
例子:
<?php
use function _ difference ;
difference ([ 2 , 1 ], [ 2 , 3 ])
// => [1]
此方法與difference
類似,只是它接受為array
和values
的每個元素所呼叫的iteratee
,以產生比較它們的標準。結果值的順序和引用由第一個陣列決定。使用一個參數呼叫迭代器:(值)。
注意:與pullAllBy
不同,此方法傳回一個新陣列。
論點:
@param array $array 要檢查的陣列。
@param array<int, mix> ...$values 要排除的值。
@param callable $iteratee 每個元素呼叫的 iteratee。
返回:
@return array 傳回過濾值的新陣列。
例子:
<?php
use function _ differenceBy ;
differenceBy ([ 2.1 , 1.2 ], [ 2.3 , 3.4 ], ' floor ' )
// => [1.2]
此方法與difference
類似,只是它接受comparator
,呼叫該比較器將array
元素與values
進行比較。結果值的順序和引用由第一個陣列決定。使用兩個參數呼叫比較器:(arrVal, othVal)。
注意:與pullAllWith
不同,此方法傳回一個新陣列。
論點:
@param array<int, mix> $array 要檢查的陣列。
@param array ...$values 要排除的值。
@param callable $comparator 每個元素調用的比較器。
返回:
@return array 傳回過濾值的新陣列。
例子:
<?php
use function _ differenceWith ;
$ objects = [[ ' x ' => 1 , ' y ' => 2 ], [ ' x ' => 2 , ' y ' => 1 ]]
differenceWith ( $ objects , [[ ' x ' => 1 , ' y ' => 2 ]], ' _::isEqual ' )
// => [[ 'x' => 2, 'y' => 1 ]]
建立一個array
切片,其中從頭開始刪除n
元素。
注意:此函數將重新排序並重置數組索引
論點:
@param array $array 要查詢的陣列。
@param int $n 要刪除的元素數量。
返回:
@return array array
的切片。
例子:
<?php
use function _ drop ;
drop ([ 1 , 2 , 3 ])
// => [2, 3]
drop ([ 1 , 2 , 3 ], 2 )
// => [3]
drop ([ 1 , 2 , 3 ], 5 )
// => []
drop ([ 1 , 2 , 3 ], 0 )
// => [1, 2, 3]
建立一個array
切片,其中從末尾刪除n
元素。注意:此函數將重新排序並重置數組索引
論點:
@param array $array 要查詢的陣列。
@param int $n 要刪除的元素數量。
返回:
@return array array
的切片。
例子:
<?php
use function _ dropRight ;
dropRight ([ 1 , 2 , 3 ])
// => [1, 2]
dropRight ([ 1 , 2 , 3 ], 2 )
// => [1]
dropRight ([ 1 , 2 , 3 ], 5 )
// => []
dropRight ([ 1 , 2 , 3 ], 0 )
// => [1, 2, 3]
建立一個array
切片,不包括從末尾刪除的元素。元素將被刪除,直到predicate
回傳 false。使用三個參數呼叫謂詞:(值、索引、陣列)。
論點:
@param array $array 要查詢的陣列。
@param callable $predicate 每次迭代呼叫的函數。
返回:
@return array array
的切片。
例子:
<?php
use function _ dropRightWhile ;
$ users = [
[ ' user ' => ' barney ' , ' active ' => false ],
[ ' user ' => ' fred ' , ' active ' => true ],
[ ' user ' => ' pebbles ' , ' active ' => true ]
]
dropRightWhile ( $ users , function ( $ user ) { return $ user [ ' active ' ]; })
// => objects for ['barney']
建立一個array
切片,不包括從開頭刪除的元素。元素將被刪除,直到predicate
回傳 false。使用三個參數呼叫謂詞:(值、索引、陣列)。
論點:
@param array $array 要查詢的陣列。
@param callable $predicate 每次迭代呼叫的函數。
返回:
@return array array
的切片。
例子:
<?php
use function _ dropWhile ;
$ users = [
[ ' user ' => ' barney ' , ' active ' => true ],
[ ' user ' => ' fred ' , ' active ' => true ],
[ ' user ' => ' pebbles ' , ' active ' => false ]
]
dropWhile ( $ users , function ( $ user ) { return $ user [ ' active ' ]; } )
// => objects for ['pebbles']
檢查predicate
是否為array
的所有元素傳回 true 。一旦predicate
回傳 false,迭代就會停止。使用三個參數呼叫謂詞:(值、索引、陣列)。
注意:此方法對於空數組傳回true
因為空數組的元素的所有內容都為 true。
論點:
@param iterable $collection 要迭代的陣列。
@param callable $predicate 每次迭代呼叫的函數。
返回:
@return bool 如果所有元素都通過謂詞檢查則為true
,否則為false
。
例子:
<?php
use function _ every ;
every ([ true , 1 , null , ' yes ' ], function ( $ value ) { return is_bool ( $ value );})
// => false
$ users = [
[ ' user ' => ' barney ' , ' age ' => 36 , ' active ' => false ],
[ ' user ' => ' fred ' , ' age ' => 40 , ' active ' => false ],
];
// The `matches` iteratee shorthand.
$ this -> assertFalse ( every ( $ users , [ ' user ' => ' barney ' , ' active ' => false ]));
// false
// The `matchesProperty` iteratee shorthand.
$ this -> assertTrue ( every ( $ users , [ ' active ' , false ]));
// true
// The `property` iteratee shorthand.
$ this -> assertFalse ( every ( $ users , ' active ' ));
//false
此方法與find
類似,只不過它傳回第一個元素的索引,謂詞傳回 true for 而不是元素本身。
論點:
@param array $array 要檢查的陣列。
@param callable $predicate 每次迭代呼叫的函數。
@param int $fromIndex 要搜尋的索引。
返回:
@return int 找到的元素的索引,否則-1
。
例子:
<?php
use function _ findIndex ;
$ users = [
[ ' user ' => ' barney ' , ' active ' => false ],
[ ' user ' => ' fred ' , ' active ' => false ],
[ ' user ' => ' pebbles ' , ' active ' => true ],
];
findIndex ( $ users , function ( $ o ) { return $ o [ ' user ' ] s== ' barney ' ; });
// => 0
// The `matches` iteratee shorthand.
findIndex ( $ users , [ ' user ' => ' fred ' , ' active ' => false ]);
// => 1
// The `matchesProperty` iteratee shorthand.
findIndex ( $ users , [ ' active ' , false ]);
// => 0
// The `property` iteratee shorthand.
findIndex ( $ users , ' active ' );
// => 2
此方法類似findIndex
,只不過它是從右到左迭代collection
的元素。
論點:
@param array $array 要檢查的陣列。
@param mix $predicate 每次迭代呼叫的函數。
@param int $fromIndex 要搜尋的索引。
返回:
@return int 找到的元素的索引,否則-1
。
例子:
<?php
use function _ findLastIndex ;
$ users = [
[ ' user ' => ' barney ' , ' active ' => true ],
[ ' user ' => ' fred ' , ' active ' => false ],
[ ' user ' => ' pebbles ' , ' active ' => false ]
]
findLastIndex ( $ users , function ( $ user ) { return $ user [ ' user ' ] === ' pebbles ' ; })
// => 2
將array
展平為單層深度。
論點:
@param array $array 要展平的陣列。
返回:
@return array 新的扁平化陣列。
例子:
<?php
use function _ flatten ;
flatten ([ 1 , [ 2 , [ 3 , [ 4 ]], 5 ]])
// => [1, 2, [3, [4]], 5]
遞歸地展平array
。
論點:
@param array $array 要展平的陣列。
返回:
@return array 傳回新的展平陣列。
例子:
<?php
use function _ flattenDeep ;
flattenDeep ([ 1 , [ 2 , [ 3 , [ 4 ]], 5 ]]);
// => [1, 2, 3, 4, 5]
遞歸地將array
展平至depth
倍。
論點:
@param array $array 要展平的陣列。
@param int $depth 最大遞歸深度。
返回:
@return array 新的扁平化陣列。
例子:
<?php
use function _ flattenDepth ;
$ array = [ 1 , [ 2 , [ 3 , [ 4 ]], 5 ]]
flattenDepth ( $ array , 1 )
// => [1, 2, [3, [4]], 5]
flattenDepth ( $ array , 2 )
// => [1, 2, 3, [4], 5]
與toPairs
相反,此方法傳回一個由鍵值pairs
組成的物件。
論點:
@param array $pairs 鍵值對。
返回:
@return stdClass 新物件。
例子:
<?php
use function _ fromPairs ;
fromPairs ([[ ' a ' , 1 ], [ ' b ' , 2 ]])
// => stdClass(
// 'a' => 1,
//'b' => 2,
// )
取得array
的第一個元素。
論點:
@param array $array 要查詢的陣列。
返回:
@return mix 傳回array
的第一個元素。
例子:
<?php
use function _ head ;
head ([ 1 , 2 , 3 ])
// => 1
head ([])
// => null
使用SameValueZero
進行相等比較,以取得在array
中第一次出現value
的索引。如果fromIndex
為負數,則將其用作與array
末尾的偏移量。
論點:
@param array $array 要檢查的陣列。
@param mix $value 要搜尋的值。
@param int $fromIndex 要搜尋的索引。
返回:
@return int 匹配值的索引,否則-1
。
例子:
<?php
use function _ indexOf ;
indexOf ([ 1 , 2 , 1 , 2 ], 2 )
// => 1
// Search from the `fromIndex`.
indexOf ([ 1 , 2 , 1 , 2 ], 2 , 2 )
// => 3
取得array
中除最後一個元素之外的所有元素。
論點:
@param array $array 要查詢的陣列。
返回:
@return array array
的切片。
例子:
<?php
use function _ initial ;
initial ([ 1 , 2 , 3 ])
// => [1, 2]
使用SameValueZero
進行相等比較,建立包含在所有給定數組中的唯一值的數組。結果值的順序和引用由第一個陣列決定。
論點:
@param數組...$數組
返回:
@return array 新的相交值陣列。
例子:
<?php
use function _ intersection ;
intersection ([ 2 , 1 ], [ 2 , 3 ])
// => [2]
此方法類似於intersection
,只不過它接受為每個arrays
的每個元素調用的iteratee
,以產生比較它們的標準。結果值的順序和引用由第一個陣列決定。使用一個參數呼叫迭代器:(值)。
論點:
@param array<int, 混合> ...$arrays
@param callable $iteratee 每個元素呼叫的 iteratee。
返回:
@return array 新的相交值陣列。
例子:
<?php
use function _ intersectionBy ;
intersectionBy ([ 2.1 , 1.2 ], [ 2.3 , 3.4 ], Math.floor)
// => [2.1]
// The `property` iteratee shorthand.
intersectionBy ([[ ' x ' => 1 ]], [[ ' x ' => 2 ], [ ' x ' => 1 ]], ' x ' );
// => [[ 'x' => 1 ]]
此方法類似於intersection
只不過它接受comparator
,該比較器被呼叫來比較arrays
的元素。結果值的順序和引用由第一個陣列決定。使用兩個參數呼叫比較器:(arrVal, othVal)。
論點:
@param數組...$數組
@param callable $comparator 每個元素調用的比較器。
返回:
@return array 新的相交值陣列。
例子:
<?php
use function _ intersectionWith ;
$ objects = [[ ' x ' => 1 , ' y ' => 2 ], [ ' x ' => 2 , ' y ' => 1 ]]
$ others = [[ ' x ' => 1 , ' y ' => 1 ], [ ' x ' => 1 , ' y ' => 2 ]]
intersectionWith ( $ objects , $ others , ' _::isEqual ' )
// => [[ 'x' => 1, 'y' => 2 ]]
取得array
的最後一個元素。
論點:
@param array $array 要查詢的陣列。
返回:
@return mix 傳回array
的最後一個元素。
例子:
<?php
use function _ last ;
last ([ 1 , 2 , 3 ])
// => 3
此方法類似indexOf
,只不過它從右到左迭代array
的元素。
論點:
@param array $array 要檢查的陣列。
@param mix $value 要搜尋的值。
@param int $fromIndex 要搜尋的索引。
返回:
@return int 匹配值的索引,否則-1
。
例子:
<?php
use function _ lastIndexOf ;
lastIndexOf ([ 1 , 2 , 1 , 2 ], 2 )
// => 3
// Search from the `fromIndex`.
lastIndexOf ([ 1 , 2 , 1 , 2 ], 2 , 2 )
// => 1
取得array
的索引n
處的元素。如果n
為負數,則傳回倒數第 n 個元素。
論點:
@param array $array 要查詢的陣列。
@param int $n 要傳回的元素的索引。
返回:
@return mix 傳回array
的第 n 個元素。
例子:
<?php
use function _ nth ;
$ array = [ ' a ' , ' b ' , ' c ' , ' d ' ]
nth ( $ array , 1 )
// => 'b'
nth ( $ array , - 2 )
// => 'c'
使用SameValueZero
進行相等比較,從array
中刪除所有給定值。
注意:與without
不同,此方法會改變array
。使用remove
透過謂詞從陣列中刪除元素。
論點:
@param array $array 要修改的陣列。
@param array<int, string> $values 要刪除的值。
返回:
@返回數組
例子:
<?php
use function _ pull ;
$ array = [ ' a ' , ' b ' , ' c ' , ' a ' , ' b ' , ' c ' ]
pull ( $ array , ' a ' , ' c ' )
var_dump ( $ array )
// => ['b', 'b']
此方法與pull
類似,只不過它接受要刪除的值數組。
注意:與difference
不同,此方法會改變array
。
論點:
@param array $array 要修改的陣列。
@param array $values 要刪除的值。
返回:
@返回數組array
。
例子:
<?php
use function _ pullAll ;
$ array = [ ' a ' , ' b ' , ' c ' , ' a ' , ' b ' , ' c ' ]
pullAll ( $ array , [ ' a ' , ' c ' ])
var_dump ( $ array )
// => ['b', 'b']
此方法類似於pullAll
只不過它接受為array
和values
的每個元素調用的iteratee
,以產生比較它們的標準。使用一個參數呼叫迭代器:(值)。
注意:與differenceBy
不同,此方法會改變array
。
論點:
@param array $array 要修改的陣列。
@param array $values 要刪除的值。
@param callable $iteratee 每個元素呼叫的 iteratee。
返回:
@返回數組array
。
例子:
<?php
use function _ pullAllBy ;
$ array = [[ ' x ' => 1 ], [ ' x ' => 2 ], [ ' x ' => 3 ], [ ' x ' => 1 ]]
pullAllBy ( $ array , [[ ' x ' => 1 ], [ ' x ' => 3 ]], ' x ' )
var_dump ( $ array )
// => [[ 'x' => 2 ]]
此方法與pullAll
類似,只是它接受comparator
,呼叫該比較器來將array
元素與values
進行比較。使用兩個參數呼叫比較器:(arrVal, othVal)。
注意:與differenceWith
不同,此方法會改變array
。
論點:
@param array $array 要修改的陣列。
@param array $values 要刪除的值。
@param callable $comparator 每個元素調用的比較器。
返回:
@返回數組array
。
例子:
<?php
use function _ pullAllWith ;
$ array = [[ ' x ' => 1 , ' y ' => 2 ], [ ' x ' => 3 , ' y ' => 4 ], [ ' x ' => 5 , ' y ' => 6 ]]
pullAllWith ( $ array , [[ ' x ' => 3 , ' y ' => 4 ]], ' _isEqual ' )
var_dump ( $ array )
// => [[ 'x' => 1, 'y' => 2 ], [ 'x' => 5, 'y' => 6 ]]
從array
中刪除與indexes
對應的元素並傳回刪除元素的陣列。
注意:與at
不同,此方法會改變array
。
論點:
@param array $array 要修改的陣列。
@param (int | int[]) $indexes 要刪除的元素的索引。
返回:
@return array 刪除元素的新陣列。
例子:
<?php
use function _ pullAt ;
$ array = [ ' a ' , ' b ' , ' c ' , ' d ' ]
$ pulled = pullAt ( $ array , [ 1 , 3 ])
var_dump ( $ array )
// => ['a', 'c']
var_dump ( $ pulled )
// => ['b', 'd']
從array
中刪除predicate
傳回 true 的所有元素,並傳回已刪除元素的陣列。使用三個參數呼叫謂詞:(值、索引、陣列)。
注意:與filter
不同,此方法會改變array
。使用pull
按值從陣列中提取元素。
論點:
@param array $array 要修改的陣列。
@param callable $predicate 每次迭代呼叫的函數。
返回:
@return array 刪除元素的新陣列。
例子:
<?php
use function _ remove ;
$ array = [ 1 , 2 , 3 , 4 ]
$ evens = remove ( $ array , function ( $ n ) { return $ n % 2 === 0 ; })
var_dump ( $ array )
// => [1, 3]
var_dump ( $ evens )
// => [2, 4]
從array
中獲取隨機元素。
論點:
@param array $array 要採樣的陣列。
返回:
@return mix 傳回隨機元素。
例子:
<?php
use function _ sample ;
sample ([ 1 , 2 , 3 , 4 ])
// => 2
從array
唯一鍵處取得n
隨機元素,直到array
的大小。
論點:
@param array $array 要採樣的陣列。
@param int $n 要取樣的元素數。
返回:
@return 陣列隨機元素。
例子:
<?php
use function _ sampleSize ;
sampleSize ([ 1 , 2 , 3 ], 2 )
// => [3, 1]
sampleSize ([ 1 , 2 , 3 ], 4 )
// => [2, 3, 1]
建立一個打亂值的數組
論點:
@param array $array 要洗牌的陣列。
返回:
@return array 新的打亂陣列。
例子:
<?php
use function _ shuffle ;
shuffle ([ 1 , 2 , 3 , 4 ])
// => [4, 1, 3, 2]
建立從start
到(但不包括end
的array
切片。
論點:
@param array $array 要切片的陣列。
@param int $start 開始位置。
@param int $end 結束位置。
返回:
@return array array
的切片。
取得array
中除第一個元素之外的所有元素。
論點:
@param array $array 要查詢的陣列。
返回:
@return array array
的切片。
例子:
<?php
use function _ tail ;
tail ([ 1 , 2 , 3 ])
// => [2, 3]
建立一個array
切片,其中包含從頭開始的n
元素。
論點:
@param array $array 要查詢的陣列。
@param int $n 要取得的元素數量。
返回:
@return array array
的切片。
例子:
<?php
use function _ take ;
take ([ 1 , 2 , 3 ])
// => [1]
take ([ 1 , 2 , 3 ], 2 )
// => [1, 2]
take ([ 1 , 2 , 3 ], 5 )
// => [1, 2, 3]
take ([ 1 , 2 , 3 ], 0 )
// => []
建立一個array
切片,其中包含從末尾取出的n
元素。
論點:
@param array $array 要查詢的陣列。
@param int $n 要取得的元素數量。
返回:
@return array array
的切片。
例子:
<?php
use function _ takeRight ;
takeRight ([ 1 , 2 , 3 ])
// => [3]
takeRight ([ 1 , 2 , 3 ], 2 )
// => [2, 3]
takeRight ([ 1 , 2 , 3 ], 5 )
// => [1, 2, 3]
takeRight ([ 1 , 2 , 3 ], 0 )
// => []
建立一個array
切片,其中的元素取自末尾。取得元素直到predicate
回傳 falsey。使用三個參數呼叫謂詞:(值、索引、陣列)。
論點:
@param array $array 要查詢的陣列。
@param callable $predicate 每次迭代呼叫的函數。
返回:
@return array array
的切片。
例子:
<?php
use function _ takeRightWhile ;
$ users = [
[ ' user ' => ' barney ' , ' active ' => false ],
[ ' user ' => ' fred ' , ' active ' => true ],
[ ' user ' => ' pebbles ' , ' active ' => true ]
];
takeRightWhile ( $ users , function ( $ value ) { return $ value [ ' active ' ]; })
// => objects for ['fred', 'pebbles']
使用從開頭取得的元素建立array
切片。取得元素直到predicate
回傳 falsey。使用三個參數呼叫謂詞:(值、索引、陣列)。
論點:
@param array $array 要查詢的陣列。
@param mix $predicate 每次迭代呼叫的函數。
返回:
@return array array
的切片。
例子:
<?php
use function _ takeWhile ;
$ users = [
[ ' user ' => ' barney ' , ' active ' => true ],
[ ' user ' => ' fred ' , ' active ' => true ],
[ ' user ' => ' pebbles ' , ' active ' => false ]
]
takeWhile ( $ users , function ( $ value ) { return $ value [ ' active ' ]; })
// => objects for ['barney', 'fred']
使用SameValueZero
進行相等比較,從所有給定數組中按順序建立唯一值數組。
論點:
@param array ...$arrays 要檢查的陣列。
返回:
@return array 新的組合值陣列。
例子:
<?php
use function _ union ;
union ([ 2 ], [ 1 , 2 ])
// => [2, 1]
此方法類似於union
,只不過它接受為每個arrays
的每個元素調用的iteratee
,以產生計算唯一性的標準。結果值是從該值出現的第一個陣列中選擇的。迭代器透過一個參數呼叫:(值)。
論點:
@param array<int, mix> ...$arrays 要檢查的陣列。
@param callable $iteratee 每個元素呼叫的 iteratee。
返回:
@return array 新的組合值陣列。
例子:
<?php
use function _ unionBy ;
unionBy ([ 2.1 ], [ 1.2 , 2.3 ], ' floor ' )
// => [2.1, 1.2]
// The `_::property` iteratee shorthand.
unionBy ([[ ' x ' => 1 ]], [[ ' x ' => 2 ], [ ' x ' => 1 ]], ' x ' );
// => [['x' => 1], ['x' => 2]]
此方法與union
類似,只是它接受comparator
,呼叫該比較器來比較arrays
的元素。結果值是從該值出現的第一個陣列中選擇的。使用兩個參數呼叫比較器:(arrVal, othVal)。
論點:
@param array<int, mix> ...$arrays 要檢查的陣列。
@param callable $comparator 每個元素調用的比較器。
返回:
@return array 新的組合值陣列。
例子:
<?php
use function _ unionWith ;
$ objects = [[ ' x ' => 1 , ' y ' => 2 ], [ ' x ' => 2 , ' y ' => 1 ]]
$ others = [[ ' x ' => 1 , ' y ' => 1 ], [ ' x ' => 1 , ' y ' => 2 ]]
unionWith ( $ objects , $ others , ' _::isEqual ' )
// => [['x' => 1, 'y' => 2], ['x' => 2, 'y' => 1], ['x' => 1, 'y' => 1]]
建立陣列的無重複版本,使用SameValueZero
進行相等比較,其中僅保留每個元素的第一次出現。結果值的順序由它們在陣列中出現的順序決定。
論點:
@param array $array 要檢查的陣列。
返回:
@return array 新的重複的空閒數組。
例子:
<?php
use function _ uniq ;
uniq ([ 2 , 1 , 2 ])
// => [2, 1]s
此方法類似於uniq
只不過它接受為array
中的每個元素調用的iteratee
,以產生計算唯一性的標準。結果值的順序由它們在陣列中出現的順序決定。使用一個參數呼叫迭代器:(值)。
論點:
@param array $array 要檢查的陣列。
@param mix $iteratee 每個元素所呼叫的 iteratee。
返回:
@return array 新的重複的空閒數組。
例子:
<?php
use function _ uniqBy ;
uniqBy ([ 2.1 , 1.2 , 2.3 ], ' floor ' )
// => [2.1, 1.2]
此方法類似於uniq
只不過它接受comparator
,該比較器被呼叫來比較array
的元素。結果值的順序由它們在陣列中出現的順序決定。
論點:
@param array $array 要檢查的陣列。
@param callable $comparator 每個元素調用的比較器。
返回:
@return array 新的重複的空閒數組。
例子:
<?php
use function _ uniqWith ;
$ objects = [[ ' x ' => 1 , ' y ' => 2 ], [ ' x ' => 2 , ' y ' => 1 ], [ ' x ' => 1 , ' y ' => 2 ]]
uniqWith ( $ objects , ' _::isEqual ' )
// => [['x' => 1, 'y' => 2], ['x' => 2, 'y' => 1]]
此方法與zip
類似,不同之處在於它接受分組元素的數組,並建立一個將元素重新分組為其壓縮前配置的數組。
論點:
@param array $array 要處理的分組元素的陣列。
返回:
@return array 重組元素的新陣列。
例子:
<?php
use function _ unzip ;
$ zipped = zip ([ ' a ' , ' b ' ], [ 1 , 2 ], [ true , false ])
// => [['a', 1, true], ['b', 2, false]]
unzip ( $ zipped )
// => [['a', 'b'], [1, 2], [true, false]]
此方法類似unzip
只不過它接受iteratee
來指定如何組合重新分組的值。使用每個群組的元素呼叫迭代器:(...group)。
論點:
@param array $array 要處理的分組元素的陣列。
@param (callable | null) $iteratee 組合重組值的函數。
返回:
@return array 重組元素的新陣列。
例子:
<?php
use function _ unzipWith ;
$ zipped = zip ([ 1 , 2 ], [ 10 , 20 ], [ 100 , 200 ])
// => [[1, 10, 100], [2, 20, 200]]
unzipWith (zipped, ' _::add ' )
// => [3, 30, 300]
使用SameValueZero
建立一個排除所有給定值的陣列以進行相等比較。
注意:與pull
不同,此方法傳回一個新陣列。
論點:
@param array $array 要檢查的陣列。
@param array<int, mix> $values 要排除的值。
返回:
@return array 過濾值的新陣列。
例子:
<?php
use function _ without ;
without ([ 2 , 1 , 2 , 3 ], 1 , 2 )
// => [3]
建立一個分組元素數組,其中第一個包含給定數組的第一個元素,第二個包含給定數組的第二個元素,依此類推。
論點:
@param array ...$arrays 要處理的陣列。
返回:
@return array 分組元素的新陣列。
例子:
<?php
use function _ zip ;
zip ([ ' a ' , ' b ' ], [ 1 , 2 ], [ true , false ])
// => [['a', 1, true], ['b', 2, false]]
此方法類似fromPairs
不同之處在於它接受兩個數組,一個是屬性標識符,另一個是對應的值。
論點:
@param array $props 屬性標識符。
@param array $values 屬性值。
返回:
@return object 新物件。
例子:
<?php
use function _ zipObject ;
zipObject ([ ' a ' , ' b ' ], [ 1 , 2 ])
/* => object(stdClass) #210 (2) {
[ " a " ] => int( 1 )
[ " b " ] => int( 2 )
}
*/
此方法類似zipObject
只不過它支援屬性路徑。
論點:
@param array $props 屬性標識符。
@param array $values 屬性值。
返回:
@return stdClass 新物件。
例子:
<?php
use function _ zipObjectDeep ;
zipObjectDeep ([ ' a.b[0].c ' , ' a.b[1].d ' ], [ 1 , 2 ])
/* => class stdClass #20 (1) {
public $ a => class stdClass #19 (1) {
public $ b =>
array ( 2 ) {
[ 0 ] => class stdClass #17 (1) {
public $ c => int( 1 )
}
[ 1 ] => class stdClass #18 (1) {
public $ d => int( 2 )
}
}
}
}
*/
此方法類似zip
只不過它接受iteratee
來指定如何組合分組值。使用每個群組的元素呼叫迭代器:(...group)。
論點:
@param array<int, (array | callable)> ...$arrays 要處理的陣列。
@param callable $iteratee 組合分組值的函數。
返回:
@return array 分組元素的新陣列。
例子:
<?php
use function _ zipWith ;
zipWith ([ 1 , 2 ], [ 10 , 20 ], [ 100 , 200 ], function ( $ a , $ b , $ c ) { return $ a + $ b + $ c ; })
// => [111, 222]
建立一個由透過iteratee
運行collection
中每個元素的結果所產生的鍵所組成的陣列。每個鍵對應的值是iteratee
傳回該鍵的次數。使用一個參數呼叫迭代器:(值)。
論點:
@param iterable $collection 要迭代的集合。
@param callable $iteratee 用於轉換鍵的 iteratee。
返回:
@return array 傳回組合的聚合物件。
例子:
<?php
use function _ countBy ;
countBy ([ 6.1 , 4.2 , 6.3 ], ' floor ' );
// => ['6' => 2, '4' => 1]
// The `property` iteratee shorthand.
countBy ([ ' one ' , ' two ' , ' three ' ], ' strlen ' );
// => ['3' => 2, '5' => 1]
迭代collection
的元素並為每個元素呼叫iteratee
。使用三個參數呼叫迭代器:(值、索引|鍵、集合)。 Iteratee 函數可以透過明確地傳回false
來提前退出迭代。
注意:與其他“Collections”方法一樣,具有“length”屬性的物件會像數組一樣進行迭代。為了避免這種行為,請使用forIn
或forOwn
進行物件迭代。
論點:
@param (array | iterable | object) $collection 要迭代的集合。
@param callable $iteratee 每次迭代呼叫的函數。
返回:
@return (array | object) 傳回collection
。
例子:
<?php
use function _ each ;
each ([ 1 , 2 ], function ( $ value ) { echo $ value ; })
// => Echoes `1` then `2`.
each (( object ) [ ' a ' => 1 , ' b ' => 2 ], function ( $ value , $ key ) { echo $ key ; });
// => Echoes 'a' then 'b' (iteration order is not guaranteed).
此方法與each
類似,只是它從右到左迭代collection
的元素。
論點:
@param (array | iterable | object) $collection 要迭代的集合。
@param callable $iteratee 每次迭代呼叫的函數。
返回:
@return (array | object) 傳回collection
。
例子:
<?php
use function _ eachRight ;
eachRight ([ 1 , 2 ], function ( $ value ) { echo $ value ; })
// => Echoes `2` then `1`.
迭代array
的元素,傳回所有元素的陣列predicate
回傳 true。使用三個參數呼叫謂詞:(值、索引、陣列)。
注意:與remove
不同,此方法傳回一個新陣列。
論點:
@param iterable $array 要迭代的陣列。
@param callable $predicate 每次迭代呼叫的函數。
返回:
@return array 新的過濾數組。
例子:
<?php
use function _ filter ;
$ users = [
[ ' user ' => ' barney ' , ' age ' => 36 , ' active ' => true ],
[ ' user ' => ' fred ' , ' age ' => 40 , ' active ' => false ]
];
filter ( $ users , function ( $ o ) { return ! $ o [ ' active ' ]; });
// => objects for ['fred']
// The `matches` iteratee shorthand.
filter ( $ users , [ ' age ' => 36 , ' active ' => true ]);
// => objects for ['barney']
// The `matchesProperty` iteratee shorthand.
filter ( $ users , [ ' active ' , false ]);
// => objects for ['fred']
// The `property` iteratee shorthand.
filter ( $ users , ' active ' );
// => objects for ['barney']
迭代collection
的元素,傳回第一個元素predicate
回傳 true for。使用三個參數呼叫謂詞:(值、索引|鍵、集合)。
論點:
@param iterable $collection 要檢查的集合。
@param callable $predicate 每次迭代呼叫的函數。
@param int $fromIndex 要搜尋的索引。
返回:
@return mix 傳回符合的元素,否則null
。
例子:
<?php
use function _ find ;
$ users = [
[ ' user ' => ' barney ' , ' age ' => 36 , ' active ' => true ],
[ ' user ' => ' fred ' , ' age ' => 40 , ' active ' => false ],
[ ' user ' => ' pebbles ' , ' age ' => 1 , ' active ' => true ]
];
find ( $ users , function ( $ o ) { return $ o [ ' age ' ] < 40 ; });
// => object for 'barney'
// The `matches` iteratee shorthand.
find ( $ users , [ ' age ' => 1 , ' active ' => true ]);
// => object for 'pebbles'
// The `matchesProperty` iteratee shorthand.
find ( $ users , [ ' active ' , false ]);
// => object for 'fred'
// The `property` iteratee shorthand.
find ( $ users , ' active ' );
// => object for 'barney'
此方法類似於find
,只不過它從右到左迭代collection
的元素。
論點:
@param iterable $collection 要檢查的集合。
@param callable $predicate 每次迭代呼叫的函數。
@param int $fromIndex 要搜尋的索引。
返回:
@return mix 傳回符合的元素,否則回傳undefined
。
例子:
<?php
use function _ findLast ;
findLast ([ 1 , 2 , 3 , 4 ], function ( $ n ) { return $ n % 2 == 1 ; })
// => 3
透過iteratee
運行collection
中的每個元素並展平映射結果,建立展平的值數組。使用三個參數呼叫迭代器:(值、索引|鍵、集合)。
論點:
@param iterable $collection 要迭代的集合。
@param callable $iteratee 每次迭代呼叫的函數。
返回:
@return array 新的扁平化陣列。
例子:
<?php
use function _ flatMap ;
function duplicate ( $ n ) {
return [ $ n , $ n ]
}
flatMap ([ 1 , 2 ], ' duplicate ' )
// => [1, 1, 2, 2]
此方法類似flatMap
只不過它遞歸地展平映射結果。
論點:
@param iterable $collection 要迭代的集合。
@param callable $iteratee 每次迭代呼叫的函數。
返回:
@return array 傳回新的展平陣列。
例子:
<?php
use function _ flatMapDeep ;
function duplicate ( $ n ) {
return [[[ $ n , $ n ]]];
}
flatMapDeep ([ 1 , 2 ], ' duplicate ' );
// => [1, 1, 2, 2]
此方法類似flatMap
,只不過它遞歸地將映射結果展平至depth
倍。
論點:
@param iterable $collection 要迭代的集合。
@param callable $iteratee 每次迭代呼叫的函數。
@param int $depth 最大遞歸深度。
返回:
@return array 新的扁平化陣列。
例子:
<?php
use function _ flatMapDepth ;
function duplicate ( $ n ) {
return [[[ $ n , $ n ]]]
}
flatMapDepth ([ 1 , 2 ], ' duplicate ' , 2 )
// => [[1, 1], [2, 2]]
建立一個由透過iteratee
運行collection
中每個元素的結果所產生的鍵所組成的陣列。分組值的順序由它們在collection
中出現的順序決定。每個鍵對應的值是負責產生鍵的元素數組。使用一個參數呼叫迭代器:(值)。
論點:
@param iterable $collection 要迭代的集合。
@param callable $iteratee 用於轉換鍵的 iteratee。
返回:
@return array 傳回組合的聚合物件。
例子:
<?php
use function _ groupBy ;
groupBy ([ 6.1 , 4.2 , 6.3 ], ' floor ' );
// => ['6' => [6.1, 6.3], '4' => [4.2]]
groupBy ([ ' one ' , ' two ' , ' three ' ], ' strlen ' );
// => ['3' => ['one', 'two'], '5' => ['three']]
呼叫collection
中每個元素的path
處的方法,傳回每個呼叫方法的結果的陣列。向每個呼叫的方法提供任何附加參數。如果path
是一個函數,則會為collection
中的每個元素呼叫它,並且this
綁定到該函數。
論點:
@param iterable $collection 要迭代的集合。
@param (array | callable | string) $path 要呼叫的方法或每次迭代呼叫的函數的路徑。
@param array $args 呼叫每個方法的參數。
返回:
@return array 結果陣列。
例子:
<?php
use function _ invokeMap ;
invokeMap ([[ 5 , 1 , 7 ], [ 3 , 2 , 1 ]], function ( $ result ) { sort ( $ result ); return $ result ;})
// => [[1, 5, 7], [1, 2, 3]]
invokeMap ([ 123 , 456 ], ' str_split ' )
// => [['1', '2', '3'], ['4', '5', '6']]
建立一個由透過iteratee
運行collection
中每個元素的結果所產生的鍵所組成的物件。每個鍵對應的值是負責產生該鍵的最後一個元素。使用一個參數呼叫迭代器:(值)。
論點:
@param iterable $collection 要迭代的集合。
@param callable $iteratee 用於轉換鍵的 iteratee。
返回:
@return array 所組成的聚合物件。
例子:
<?php
use function _ keyBy ;
$ array = [
[ ' direction ' => ' left ' , ' code ' => 97 ],
[ ' direction ' => ' right ' , ' code ' => 100 ],
];
keyBy ( $ array , function ( $ o ) { return chr ( $ o [ ' code ' ]); })
// => ['a' => ['direction' => 'left', 'code' => 97], 'd' => ['direction' => 'right', 'code' => 100]]
keyBy ( $ array , ' direction ' );
// => ['left' => ['direction' => 'left', 'code' => 97], 'right' => ['direction' => 'right', 'code' => 100]]
透過iteratee
運行collection
中的每個元素來建立值數組。使用三個參數呼叫迭代器:(值、索引|鍵、集合)。
許多 lodash-php 方法都被保護為_::every
、 _::filter
、 _::map
、 _::mapValues
、 _::reject
和_::some
等方法的迭代器。
takeRight
保護的方法有: ary
、 chunk
、 curry
、 curryRight
、 drop
、 dropRight
sortBy
every
some
fill
template
invert
split
parseInt
take
random
、 range
、 rangeRight
、 repeat
、 sampleSize
、 slice
、 trim
、 trimEnd
、 trimStart
和words
論點:
@param (array | object) $collection 要迭代的集合。
@param (callable | string | array) $iteratee 每次迭代呼叫的函數。
返回:
@return array 傳回新的映射數組。
例子:
<?php
use function _ map ;
function square ( int $ n ) {
return $ n * $ n ;
}
map ([ 4 , 8 ], $ square );
// => [16, 64]
map (( object ) [ ' a ' => 4 , ' b ' => 8 ], $ square );
// => [16, 64] (iteration order is not guaranteed)
$ users = [
[ ' user ' => ' barney ' ],
[ ' user ' => ' fred ' ]
];
// The `property` iteratee shorthand.
map ( $ users , ' user ' );
// => ['barney', 'fred']
此方法類似於sortBy
,只不過它允許指定要排序的迭代器的排序順序。如果未指定orders
,則所有值均按升序排序。否則,指定對應值的降序排列順序為“desc”,或為升序排列順序指定“asc”。
論點:
@param (iterable | null) $collection 要迭代的集合。
@param (array[] | callable[] | string[]) $iteratee 要排序的 iteratee。
@param string[] $orders iteratees
的排序順序。
返回:
@return array 新的排序數組。
例子:
<?php
use function _ orderBy ;
$ users = [
[ ' user ' => ' fred ' , ' age ' => 48 ],
[ ' user ' => ' barney ' , ' age ' => 34 ],
[ ' user ' => ' fred ' , ' age ' => 40 ],
[ ' user ' => ' barney ' , ' age ' => 36 ]
]
// Sort by `user` in ascending order and by `age` in descending order.
orderBy ( $ users , [ ' user ' , ' age ' ], [ ' asc ' , ' desc ' ])
// => [['user' => 'barney', 'age' => 36], ['user' => 'barney', 'age' => 34], ['user' => 'fred', 'age' => 48], ['user' => 'fred', 'age' => 40]]
建立一個分成兩組的元素數組,第一組包含predicate
傳回 true 的元素,第二組包含predicate
傳回 falsey 的元素。該謂詞透過一個參數呼叫:(值)。
論點:
@param iterable $collection 要迭代的集合。
@param callable $predicate 每次迭代呼叫的函數。
返回:
@return array 分組元素的陣列。
例子:
<?php
use function _ partition ;
$ users = [
[ ' user ' => ' barney ' , ' age ' => 36 , ' active ' => false ],
[ ' user ' => ' fred ' , ' age ' => 40 , ' active ' => true ],
[ ' user ' => ' pebbles ' , ' age ' => 1 , ' active ' => false ]
];
partition ( $ users , function ( $ user ) { return $ user [ ' active ' ]; })
// => objects for [['fred'], ['barney', 'pebbles']]
將collection
減少到一個值,該值是透過iteratee
運行collection
中每個元素的累積結果,其中每個連續呼叫都提供前一個呼叫的回傳值。如果未給出accumulator
,則使用collection
的第一個元素作為初始值。使用四個參數呼叫迭代器:(累加器、值、索引|鍵、集合)。
許多 lodash 方法都被保護為像reduce
、 reduceRight
和transform
這樣的方法的迭代器。
受保護的方法有: assign
、 defaults
、 defaultsDeep
、 includes
、 merge
、 orderBy
和sortBy
論點:
@param iterable $collection 要迭代的集合。
@param mix $iteratee 每次迭代呼叫的函數。
@param mix $accumulator 初始值。
返回:
@return mix 傳回累加值。
例子:
<?php
use function _ reduce ;
reduce ([ 1 , 2 ], function ( $ sum , $ n ) { return $ sum + $ n ; }, 0 )
// => 3
reduce ([ ' a ' => 1 , ' b ' => 2 , ' c ' => 1 ], function ( $ result , $ value , $ key ) {
if (! isset ( $ result [ $ value ])) {
$ result [ $ value ] = [];
}
$ result [ $ value ][] = $ key ;
return $ result ;
}, [])
// => ['1' => ['a', 'c'], '2' => ['b']] (iteration order is not guaranteed)
此方法類似於reduce
,只不過它從右到左迭代collection
的元素。
論點:
@param iterable $collection 要迭代的集合。
@param mix $iteratee 每次迭代呼叫的函數。
@param mix $accumulator 初始值。
返回:
@return mix 傳回累加值。
例子:
<?php
use function _ reduceRight ;
$ array = [[ 0 , 1 ], [ 2 , 3 ], [ 4 , 5 ]];
reduceRight ( array , (flattened, other) => flattened. concat (other), [])
// => [4, 5, 2, 3, 0, 1]
與filter
相反,此方法傳回predicate
未傳回 true 的collection
元素。
論點:
@param iterable $collection 要迭代的集合。
@param callable $predicate 每次迭代呼叫的函數。
返回:
@return array 新的過濾數組。
例子:
<?php
use function _ reject ;
$ users = [
[ ' user ' => ' barney ' , ' active ' => true ],
[ ' user ' => ' fred ' , ' active ' => false ]
]
reject ( $ users , ' active ' )
// => objects for ['fred']
透過傳回數組值的長度或物件的公共屬性的數量來取得collection
的大小。
論點:
@param (array | object | string) $collection 要檢查的集合。
返回:
@return int 傳回集合大小。
例子:
<?php
use function _ size ;
size ([ 1 , 2 , 3 ]);
// => 3
size ( new class { public $ a = 1 ; public $ b = 2 ; private $ c = 3 ; });
// => 2
size ( ' pebbles ' );
// => 7
檢查predicate
是否為collection
的任何元素傳回 true 。一旦predicate
傳回真值,迭代就會停止。使用三個參數呼叫謂詞:(值、索引|鍵、集合)。
論點:
@param iterable $collection 要迭代的集合。
@param (callable | string | array) $predicate 每次迭代呼叫的函數。
返回:
@return boolean 如果任何元素通過謂詞檢查,則傳回true
,否則傳回false
。
例子:
<?php
use function _ some ;
some ([ null , 0 , ' yes ' , false ], , function ( $ value ) { return is_bool ( $ value ); }));
// => true
$ users = [
[ ' user ' => ' barney ' , ' active ' => true ],
[ ' user ' => ' fred ' , ' active ' => false ]
];
// The `matches` iteratee shorthand.
some ( $ users , [ ' user ' => ' barney ' , ' active ' => false ]);
// => false
// The `matchesProperty` iteratee shorthand.
some ( $ users , [ ' active ' , false ]);
// => true
// The `property` iteratee shorthand.
some ( $ users , ' active ' );
// => true
建立一個元素數組,按通過每個迭代器運行集合中每個元素的結果按升序排序。此方法執行穩定排序,即保留相等元素的原始排序順序。迭代器透過一個參數呼叫:(值)。
論點:
@param (array | object | null) $collection 要迭代的集合。
@param (callable | callable[]) $iteratees 要排序的 iteratees。
返回:
@return array 傳回新的排序數組。
例子:
<?php
use function _ sortBy ;
$ users = [
[ ' user ' => ' fred ' , ' age ' => 48 ],
[ ' user ' => ' barney ' , ' age ' => 36 ],
[ ' user ' => ' fred ' , ' age ' => 40 ],
[ ' user ' => ' barney ' , ' age ' => 34 ],
];
sortBy ( $ users , [ function ( $ o ) { return $ o [ ' user ' ]; }]);
// => [['user' => 'barney', 'age' => 36], ['user' => 'barney', 'age' => 34], ['user' => 'fred', 'age' => 48], ['user' => 'fred', 'age' => 40]]
sortBy ( $ users , [ ' user ' , ' age ' ]);
// => [['user' => 'barney', 'age' => 34], ['user' => 'barney', 'age' => 36], ['user' => 'fred', 'age' => 40], ['user' => 'fred', 'age' => 48]]
取得自 Unix 紀元(1970 年 1 月 1 日 00:00:00 UTC)以來經過的毫秒數的時間戳記。
論點:
返回:
@return int 傳回時間戳記。
例子:
<?php
use function _ now ;
now ();
// => 1511180325735
與before
相反;此方法建立一個函數,一旦呼叫func
n
或多次,該函數就會呼叫該函數。
論點:
@param int $n 呼叫func
之前的呼叫次數。
@param Callable $func 要限制的函數。
返回:
@return Callable 傳回新的受限函數。
例子:
<?php
use function _ after ;
$ saves = [ ' profile ' , ' settings ' ];
$ done = after ( count ( $ saves ), function () {
echo ' done saving! ' ;
});
forEach ( $ saves , function ( $ type ) use ( $ done ) {
asyncSave ([ ' type ' => $ type , ' complete ' => $ done ]);
});
// => Prints 'done saving!' after the two async saves have completed.
建立一個呼叫func
的函數,最多帶有n
參數,忽略任何其他參數。
論點:
@param callable $func 限制參數的函數。
@param int $n 數量上限。
返回:
@return Callable 傳回新的上限函數。
例子:
<?php
use function _ ary ;
map ([ ' 6 ' , ' 8 ' , ' 10 ' ], ary ( ' intval ' , 1 ));
// => [6, 8, 10]
建立一個使用所建立函數的參數呼叫func
的函數,同時呼叫次數少於n
次。對創建的函數的後續呼叫將傳回上次func
呼叫的結果。
論點:
@param int $n 不再呼叫func
呼叫次數。
@param callable $func 要限制的函數。
返回:
@return callable 傳回新的受限函數。
例子:
<?php
use function _ before ;
$ users = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ];
$ result = uniqBy ( map ( $ users , before ( 5 , [ $ repository , ' find ' ])), ' id ' )
// => Fetch up to 4 results.
建立一個函數,該函數使用object
的this
綁定以及附加到它接收的參數前面partials
來呼叫func
。
論點:
@param callable $function 要綁定的函數。
@param (object | mix) $object func
的object
綁定。
@param array<int, mix> $partials 要部分套用的參數。
返回:
@return callable 傳回新的綁定函數。
例子:
<?php
use function _ bind ;
function greet ( $ greeting , $ punctuation ) {
return $ greeting . ' ' . $ this -> user . $ punctuation ;
}
$ object = $ object = new class {
public $ user = ' fred ' ;
};
$ bound = bind ( ' greet ' , $ object , ' hi ' );
$ bound ( ' ! ' );
// => 'hi fred!'
建立一個函數,該函數呼叫$object
的$function
方法,並將$partials
附加到它接收的參數之前。
此方法與bind
不同,它允許綁定函數引用可能被重新定義或尚未存在的方法
論點:
@param object $object 呼叫方法的物件。
@param string $function 方法的名稱。
@param array<int, mix> $partials 要部分套用的參數。
返回:
@return callable 傳回新的綁定函數。
例子:
<?php
use function _ bindKey ;
$ object = new class {
private $ user = ' fred ' ;
function greet ( $ greeting , $ punctuation ) {
return $ greeting . ' ' . $ this -> user . $ punctuation ;
}
};
$ bound = bindKey ( $ object , ' greet ' , ' hi ' );
$ bound ( ' ! ' );
// => 'hi fred!'
建立一個接受func
參數的函數,如果至少提供了arity
個參數,則呼叫func
傳回其結果,或傳回接受剩餘func
參數的函數,依此類推。如果func.length
不夠,可以指定func
的數量。
_.curry.placeholder
值(在整體建置中預設為_
)可以用作所提供參數的佔位符。
注意:此方法不會設定柯里化函數的“length”屬性。
論點:
@param callable $func 要柯里化的函數。
@param (int | null) $arity func
的數量。
返回:
@return callable 傳回新的柯里化函數。
例子:
<?php
use function _ curry ;
$ abc = function ( $ a , $ b , $ c ) {
return [ $ a , $ b , $ c ];
};
$ curried = curry ( $ abc );
$ curried ( 1 )( 2 )( 3 );
// => [1, 2, 3]
$ curried ( 1 , 2 )( 3 );
// => [1, 2, 3]
$ curried ( 1 , 2 , 3 );
// => [1, 2, 3]
// Curried with placeholders.
$ curried ( 1 )(_, 3 )( 2 );
// => [1, 2, 3]
wait
毫秒後呼叫func
。呼叫 func 時,將向func
提供任何其他參數。
論點:
@param callable $func 要延遲的函數。
@param int $wait 延遲呼叫的毫秒數。
@param array<int, 混合> $args
返回:
@return int 計時器 ID。
例子:
<?php
use function _ delay ;
delay ( function ( $ text ) {
echo $ text ;
}, 1000 , ' later ' );
// => Echo 'later' after one second.
建立一個呼叫func
並反轉參數的函數。
論點:
@param callable $func 翻轉參數的函數。
返回:
@return callable 傳回新的翻轉函數。
例子:
<?php
use function _ flip ;
$ flipped = flip ( function () {
return func_get_args ();
});
flipped ( ' a ' , ' b ' , ' c ' , ' d ' );
// => ['d', 'c', 'b', 'a']
建立一個儲存func
結果的函數。如果提供了resolver
,它會根據提供給記憶函數的參數確定用於儲存結果的快取鍵。預設情況下,提供給記憶函數的第一個參數用作地圖快取鍵
注意:緩存作為儲存函數的cache
屬性公開。可以透過將_.memoize.Cache
建構函式替換為實例實作clear
、 delete
、 get
、 has
和set
的Map
方法介面的建構函式來自訂其建立。
論點:
@param callable $func 儲存其輸出的函數。
@param (callable | null) $resolver 解析快取鍵的函數。
返回:
@return callable 傳回新的記憶函數。
例子:
<?php
use function _ memoize ;
$ object = [ ' a ' => 1 , ' b ' => 2 ];
$ other = [ ' c ' => 3 , ' d ' => 4 ];
$ values = memoize ( ' _values ' );
$ values ( $ object );
// => [1, 2]
$ values ( $ other );
// => [3, 4]
$ object [ ' a ' ] = 2 ;
$ values ( $ object );
// => [1, 2]
// Modify the result cache.
$ values -> cache -> set ( $ object , [ ' a ' , ' b ' ]);
$ values ( $ object );
// => ['a', 'b']
建立一個否定謂詞func
結果的函數
論點:
@param callable $predicate 要否定的謂詞。
返回:
@return callable 傳回新的否定函數。
例子:
<?php
use function _ negate ;
function isEven ( $ n ) {
return $ n % 2 == 0 ;
}
filter ([ 1 , 2 , 3 , 4 , 5 , 6 ], negate ( $ isEven ));
// => [1, 3, 5]
建立一個僅限呼叫func
一次的函數。重複呼叫函數會傳回第一次呼叫的值。使用所建立函數的參數呼叫func
。
論點:
@param callable $func 要限制的函數。
返回:
@return 可呼叫新的受限函數。
例子:
<?php
use function _ once ;
$ initialize = once ( ' createApplication ' );
$ initialize ();
$ initialize ();
// => `createApplication` is invoked once
建立一個呼叫func
並轉換其參數的函數。
論點:
@param callable $func 要包裝的函數。
@param callable[] $transforms 參數轉換。
返回:
@return 可呼叫新函數。
例子:
<?php
use function _ overArgs ;
function doubled ( $ n ) {
return $ n * 2 ;
}
function square ( $ n ) {
return $ n * $ n ;
}
$ func = overArgs ( function ( $ x , $ y ) {
return [ $ x , $ y ];
}, [ ' square ' , ' doubled ' ]);
$ func ( 9 , 3 );
// => [81, 6]
$ func ( 10 , 5 );
// => [100, 10]
建立一個呼叫func
的函數,並將partials
加入它接收的參數。
論點:
@param callable $func 部分應用參數的函數。
@param array<int, mix> $partials 要部分套用的參數。
返回:
@return callable 傳回新的部分應用程式。
例子:
<?php
use function _ partial ;
function greet ( $ greeting , $ name ) {
return $ greeting . ' ' . $ name ;
}
$ sayHelloTo = partial ( ' greet ' , ' hello ' );
$ sayHelloTo ( ' fred ' );
// => 'hello fred'
建立一個函數,該函數使用建立的函數的this
綁定以及以陣列形式提供的從start
到結束的參數來呼叫func
。
論點:
@param callable $func 應用剩餘參數的函數。
@param (int | null) $start 剩餘參數的開始位置。
返回:
@return callable 傳回新函數。
例子:
<?php
use function _ rest ;
$ say = rest ( function ( $ what , $ names ) {
return $ what . ' ' . implode ( ' , ' , initial ( $ names )) .
( size ( $ names ) > 1 ? ' , & ' : '' ) . last ( $ names );
});
$ say ( ' hello ' , ' fred ' , ' barney ' , ' pebbles ' );
// => 'hello fred, barney, & pebbles'
建立一個函數,該函數使用 create 函數的this
綁定和一個參數陣列來呼叫func
,就像Function#apply
一樣。
注意:該方法基於展開運算子。
論點:
@param callable $func 用於傳播參數的函數。
@param int $start 展開的起始位置。
返回:
@return callable 傳回新函數。
例子:
<?php
use function _ spread ;
$ say = spread ( function ( $ who , $ what ) {
return $ who . ' says ' . $ what ;
});
$ say ([ ' fred ' , ' hello ' ]);
// => 'fred says hello'
建立一個最多接受一個參數的函數,忽略任何其他參數。
論點:
@param callable $func 限制參數的函數。
返回:
@return 可呼叫新的上限函數。
例子:
<?php
use function _ unary ;
map ([ ' 6 ' , ' 8 ' , ' 10 ' ], unary ( ' intval ' ));
// => [6, 8, 10]
建立一個函數,為wrapper
提供value
作為其第一個參數。提供給函數的任何其他參數將附加到提供給wrapper
參數中。
論點:
@param mix $value 要包裝的值。
@param callable $wrapper 包裝函數。
返回:
@return 可呼叫新函數。
例子:
<?php
use function _ wrap ;
$ p = wrap ( ' _escape ' , function ( $ func , $ text ) {
return ' <p> ' . $ func ( $ text ) . ' </p> ' ;
});
$ p ( ' fred, barney, & pebbles ' );
// => '<p>fred, barney, & pebbles</p>'
對兩個值進行比較以確定它們是否相等。
論點:
@param mix $value 要比較的值。
@param mix $other 要比較的其他值。
返回:
@return boolean 如果值相等則傳回true
,否則傳回false
。
例子:
<?php
use function _ eq ;
$ object = ( object ) [ ' a ' => 1 ];
$ other = ( object ) [ ' a ' => 1 ];
eq ( $ object , $ object );
// => true
eq ( $ object , $ other );
// => false
eq ( ' a ' , ' a ' );
// => true
eq ([ ' a ' ], ( object ) [ ' a ' ]);
// => false
eq ( INF , INF );
// => true
在兩個值之間執行深度比較以確定它們是否相等。
注意:此方法支援比較陣列、布林值、DateTime 物件、例外物件、SPLObjectStorage、數字、字串、類型化陣列、資源、DOM 節點。物件透過它們自己的而不是繼承的可枚舉屬性進行比較。
論點:
@param mix $value 要比較的值。
@param mix $other 要比較的其他值。
返回:
@return bool 如果值相等則傳回true
,否則傳回false
。
例子:
<?php
use function _ isEqual ;
$ object = [ ' a ' => 1 ]
$ other = [ ' a ' => ' 1 ' ]
isEqual ( $ object , $ other )
// => true
$ object === $ other
// => false
檢查value
是否為Exception
、 ParseError
、 Error , Throwable
、 SoapFault , DOMException
、 PDOException` 物件。
論點:
@param mix $value 要檢查的值。
返回:
@return boolean 如果value
是錯誤對象,則傳回true
,否則傳回false
。
例子:
<?php
use function _ isError ;
isError ( new Exception ())
// => true
isError (Exception::Class)
// => false
將兩個數字相加。
論點:
@param (int | float | string) $augend 加法中的第一個數字。
@param (int | float | string) $addend 加法中的第二個數字。
返回:
@return (int | float) 回傳總數。
例子:
<?php
use function _ add ;
add ( 6 , 4 );
// => 10
計算array
的最大值。如果array
為空或 false,則傳回 null。
論點:
@param (array | null) $array 要迭代的陣列。
返回:
@return (int | null) 傳回最大值。
例子:
<?php
use function _ max ;
max ([ 4 , 2 , 8 , 6 ]);
// => 8
max ([]);
// => null
此方法就像max
一樣,除了它接受array
中每個元素的iteratee
以產生值排名的標準。 ITEMERE被一個參數呼叫:(value)。
論點:
@param數組$陣列to to Toterate Over。
@param(callable | string)$ iterateE每個元素呼叫。
返回:
@return混合返回最大值。
例子:
<?php
use function _ maxBy ;
$ objects = [[ ' n ' => 1 ], [ ' n ' => 2 ]];
maxBy ( $ objects , function ( $ o ) { return $ o [ ' n ' ]; });
// => ['n' => 2]
// The `property` iteratee shorthand.
maxBy ( $ objects , ' n ' );
// => ['n' => 2]
number
在包含lower
和upper
內。
論點:
@param int $編號夾具的號碼。
@param int $降低下限。
@param int $上限上限。
返回:
@return int傳回夾具的數字。
例子:
<?php
use function _ clamp ;
clamp (- 10 , - 5 , 5 )
// => -5
clamp ( 10 , - 5 , 5 )
// => 5
檢查number
是否在start
和end
(但不包括)之間。如果未指定end
,則將其設為從start
start
,然後設為0
。如果start
大於end
則將參數交換以支援負範圍。
論點:
@param float $編號要檢查的號碼。
@param float $開始範圍的開始。
@param float $結束範圍的結束。
返回:
@return boolean如果number
在範圍內,則傳回true
,否則false
。
例子:
<?php
use function _ inRange ;
inRange ( 3 , 2 , 4 )
// => true
inRange ( 4 , 8 )
// => true
inRange ( 4 , 2 )
// => false
inRange ( 2 , 2 )
// => false
inRange ( 1.2 , 2 )
// => true
inRange ( 5.2 , 4 )
// => false
inRange (- 3 , - 2 , - 6 )
// => true
產生介於lower
和upper
之間的隨機數。如果僅提供一個參數,則傳回0
到給定數字之間的數字。如果floating
為true
,或是lower
或upper
是浮點數,則傳回浮點數而不是整數。
論點:
@param(int | float | bool)$降低下限。
@param(int | float | bool)$上限上限。
@param(bool | null)$浮動指定傳回浮點數。
返回:
@return(int | float)傳回隨機數。
例子:
<?php
use function _ random ;
random ( 0 , 5 )
// => an integer between 0 and 5
random ( 5 )
// => also an integer between 0 and 5
random ( 5 , true )
// => a floating-point number between 0 and 5
random ( 1.2 , 5.2 )
// => a floating-point number between 1.2 and 5.2
取得物件路徑的值。如果解析值為null,則將預設值傳回其位置。
論點:
@Param混合$物件締合數組或物件從
@param(array | string)$路徑點分離或字串的陣列
@param混合$ defaultValue(可選)未解決或無空值傳回的值。
返回:
@return混合回傳解決值。
例子:
<?php
use function _ get ;
$ sampleArray = [ " key1 " => [ " key2 " => [ " key3 " => " val1 " , " key4 " => "" ]]];
get ( $ sampleArray , ' key1.key2.key3 ' );
// => "val1"
get ( $ sampleArray , ' key1.key2.key5 ' , " default " );
// => "default"
get ( $ sampleArray , ' key1.key2.key4 ' , " default " );
// => ""
建立一個由採摘object
屬性組成的物件。
論點:
@param物件$物件來源物件。
@param(String | String [])$路徑屬於所選的屬性路徑。
返回:
@return stdclass傳回新物件。
例子:
<?php
use function _ pick ;
$ object = ( object ) [ ' a ' => 1 , ' b ' => ' 2 ' , ' c ' => 3 ];
pick ( $ object , [ ' a ' , ' c ' ]);
// => (object) ['a' => 1, 'c' => 3]
創建一個由object
屬性組成的對象predicate
返回真相。謂詞帶有兩個參數:(value,key)。
論點:
@param(object | null)$物件來源物件。
@param callable $謂詞每個屬性所呼叫的函數。
返回:
@return stdclass傳回新物件。
例子:
<?php
use function _ pickBy ;
$ object = ( object ) [ ' a ' => 1 , ' b ' => ' abc ' , ' c ' => 3 ];
pickBy (object, ' is_numeric ' );
// => (object) ['a' => 1, 'c' => 3]
建立一個lodash
包裝器實例,該實例將啟用的明確方法鏈序列包裝value
。此類序列的結果必須以->value()
解開。
論點:
@Param混合$值包裝的值。
返回:
@return _傳回新的lodash
包裝器實例。
例子:
<?php
use function _ chain ;
$ users = [
[ ' user ' => ' barney ' , ' age ' => 36 ],
[ ' user ' => ' fred ' , ' age ' => 40 ],
[ ' user ' => ' pebbles ' , ' age ' => 1 ],
];
$ youngest = chain ( $ users )
-> sortBy ( ' age ' )
-> map ( function ( $ o ) {
return $ o [ ' user ' ] . ' is ' . $ o [ ' age ' ];
})
-> head ()
-> value ();
// => 'pebbles is 1'
將string
轉換為駱駝盒。
論點:
@param字串$字串轉換字串。
返回:
@return String傳回駱駝殼字串。
例子:
<?php
use function _ camelCase ;
camelCase ( ' Foo Bar ' )
// => 'fooBar'
camelCase ( ' --foo-bar-- ' )
// => 'fooBar'
camelCase ( ' __FOO_BAR__ ' )
// => 'fooBar'
將string
的第一個字元轉換為上情況,然後將其剩餘字元轉換為較低的情況。
論點:
@param字串$字串字串大寫。
返回:
@return字串傳回大寫字串。
例子:
<?php
use function _ capitalize ;
capitalize ( ' FRED ' )
// => 'Fred'
透過轉換[LATIN-1補充string
(https => // en.wikipedia.org/wiki/wiki/latin-1_supplement_(unicode_block)#character_table_table)和[latin extended-a](https =>/https =>/en .wikipedia。
論點:
@param字串$字串將字串轉換為deburr。
返回:
@return字串回傳Deburred String。
例子:
<?php
use function _ deburr ;
deburr ( ' déjà vu ' )
// => 'deja vu'
檢查string
是否以給定目標字串結束。
論點:
@param字串$字串的字串要檢查。
@param字串$目標字串要搜尋。
@param int $定位要搜尋的位置。
返回:
@return boolean如果string
以target
結束,則傳回true
,else false
。
例子:
<?php
use function _ endsWith ;
endsWith ( ' abc ' , ' c ' )
// => true
endsWith ( ' abc ' , ' b ' )
// => false
endsWith ( ' abc ' , ' b ' , 2 )
// => true
將string
的字元“&”,“”,“','”和“”轉換為其對應的HTML實體。
儘管“>”字元是逃脫的對稱性,但諸如“>”和“/“”的字元不需要在HTML中逃脫,除非它們是標籤或未引用的屬性值的一部分,否則沒有特殊的含義。有關更多詳細信息,請參見Mathias Bynens的文章(在“半半有趣的事實”下)。
使用HTML時,您應始終引用屬性值以減少XSS向量。
論點:
@param字串$字串逃脫。
返回:
@return字串傳回逃脫的字串。
例子:
<?php
use function _ escape ;
escape ( ' fred, barney, & pebbles ' )
// => 'fred, barney, & pebbles'
逃脫RegExp
特殊字元“^”,“ $”,“”,“。”,“*”,“+”,“?”,“”,“,”,“),”,“ [,”], ”,“ { “,”,“}”和“ |”在string
中。
論點:
@param字串$字串逃脫。
返回:
@return字串傳回逃脫的字串。
例子:
<?php
use function _ escapeRegExp ;
escapeRegExp ( ' [lodash](https://lodash.com/) ' )
// => '[lodash](https://lodash.com/)'
將string
轉換為烤肉串。
論點:
@param字串$字串轉換字串。
返回:
@return字串傳回烤肉串殼字串。
例子:
<?php
use function _ kebabCase ;
kebabCase ( ' Foo Bar ' )
// => 'foo-bar'
kebabCase ( ' fooBar ' )
// => 'foo-bar'
kebabCase ( ' __FOO_BAR__ ' )
// => 'foo-bar'
將string
作為空間分開的單字轉換為較低的情況。
論點:
@param字串$字串轉換字串。
返回:
@return字串傳回下殼字串。
例子:
<?php
use function _ lowerCase ;
lowerCase ( ' --Foo-Bar-- ' )
// => 'foo bar'
lowerCase ( ' fooBar ' )
// => 'foo bar'
lowerCase ( ' __FOO_BAR__ ' )
// => 'foo bar'
將string
的第一個字元轉換為較低的情況。
論點:
@param字串$字串轉換字串。
返回:
@return字串傳回轉換的字串。
例子:
<?php
use function _ lowerFirst ;
lowerFirst ( ' Fred ' )
// => 'fred'
lowerFirst ( ' FRED ' )
// => 'fRED'
如果比length
短,則在左側和右側的墊子string
。如果無法將填充字元截斷,如果不能將其均勻劃分為length
。
論點:
@param字串$字串將字串到墊子。
@param int $長度填滿長度。
@param字串$ chars用作填充的字串。
返回:
@return字串傳回填滿字串。
例子:
<?php
use function _ pad ;
pad ( ' abc ' , 8 )
// => ' abc '
pad ( ' abc ' , 8 , ' _- ' )
// => '_-abc_-_'
pad ( ' abc ' , 2 )
// => 'abc'
右側的墊子string
在右側,如果length
短。如果填充字元超過length
則將其截斷。
論點:
@param字串$字串將字串到墊子。
@param int $長度填滿長度。
@param字串$ chars用作填充的字串。
返回:
@return字串傳回填滿字串。
例子:
<?php
use function _ padEnd ;
padEnd ( ' abc ' , 6 )
// => 'abc '
padEnd ( ' abc ' , 6 , ' _- ' )
// => 'abc_-_'
padEnd ( ' abc ' , 2 )
// => 'abc'
如果比length
短,則在左側的墊子string
。如果填充字元超過length
則將其截斷。
s論點:
@param String $ string =''墊的字串。
@param int $長度填滿長度。
@param字串$ chars用作填充的字串。
返回:
@return字串傳回填滿字串。
例子:
<?php
use function _ padStart ;
padStart ( ' abc ' , 6 )
// => ' abc'
padStart ( ' abc ' , 6 , ' _- ' )
// => '_-_abc'
padStart ( ' abc ' , 2 )
// => 'abc'
將string
轉換為指定radix的整數。如果radix
undefined
或0
,則使用10
的radix
,除非string
是十六進制,在這種情況下,使用16
的radix
。
注意:此方法使用PHP的內建整數鑄造,這不一定與parseInt
的ES5實作保持一致。
論點:
@param(int | float | string)$字串轉換。
@param int $ radix radix解釋string
。
返回:
@return int傳回轉換後的整數。
例子:
<?php
use function _ parseInt ;
parseInt ( ' 08 ' )
// => 8
重複給定的字串n
時間。
論點:
@param字串$字串重複的字串。
@param int $ n重複字串的次數。
返回:
@return字串傳回重複的字串。
例子:
<?php
use function _ repeat ;
repeat ( ' * ' , 3 )
// => '***'
repeat ( ' abc ' , 2 )
// => 'abcabc'
repeat ( ' abc ' , 0 )
// => ''
用replacement
在pattern
string
替換匹配項。
注意:此方法基於String#replace
。
論點:
@param字串$字串的字串要修改。
@param字串$模式替換的模式。
@param(callable | string)$替換匹配替換。
返回:
@return字串傳回修改後的字串。
例子:
<?php
use function _ replace ;
replace ( ' Hi Fred ' , ' Fred ' , ' Barney ' )
// => 'Hi Barney'
將string
轉換為蛇案。
論點:
@param字串$字串轉換字串。
返回:
@return String傳回蛇殼字串。
例子:
<?php
use function _ snakeCase ;
snakeCase ( ' Foo Bar ' )
// => 'foo_bar'
snakeCase ( ' fooBar ' )
// => 'foo_bar'
snakeCase ( ' --FOO-BAR-- ' )
// => 'foo_bar'
按separator
分割string
。
注意:該方法基於String#split
。
論點:
@param字串$字串拆分字串。
@param字串$分隔符號分離器模式要分開。
@param int $將長度限制為截斷結果。
返回:
@return陣列傳回字串段。
例子:
<?php
use function _ split ;
split ( ' a-b-c ' , ' - ' , 2 )
// => ['a', 'b']
將string
轉換為啟動情況。
論點:
@param字串$字串轉換字串。
返回:
@return字串返回開始cased字串。
例子:
<?php
use function _ startCase ;
startCase ( ' --foo-bar-- ' )
// => 'Foo Bar'
startCase ( ' fooBar ' )
// => 'Foo Bar'
startCase ( ' __FOO_BAR__ ' )
// => 'FOO BAR'
檢查string
是否以給定的目標字串開頭。
論點:
@param字串$字串的字串要檢查。
@param字串$目標字串要搜尋。
@param int $位置要搜尋的位置。
返回:
@return boolean如果string
以target
開頭,則傳回true
,else false
。
例子:
<?php
use function _ startsWith ;
startsWith ( ' abc ' , ' a ' )
// => true
startsWith ( ' abc ' , ' b ' )
// => false
startsWith ( ' abc ' , ' b ' , 1 )
// => true
建立一個編譯的模板函數,該功能可以在「 Escape」定界符中的「插值」定界符,HTML-Escape插值資料屬性中插值資料屬性,並在「評估」定界符中執行PHP。資料屬性可以作為模板中的自由變數存取。如果給出設定對象,則需要優先於$templateSettings
值。
REGEXP $ options ['easpe'] = _ :: $ spemplatesettings ['easce'] html「逃生」定界符。 Regexp $ options ['evaluate'] = _ :: $ spemplatesettings ['evaluate']「評估」定界符。數組$ options ['imports'] = _ :: $ templatesettings ['imports']作為自由變數導入到模板中的物件。 REGEXP $ options ['interpaly'] = _ :: $ spemplatesettings ['interpaly']「插入螺旋」定界符。
論點:
@param字串$字串模板字串。
@Param數組$選項選項陣列。
返回:
@return callable回傳編譯模板功能。
例子:
<?php
use function _ template ;
// Use the "interpolate" delimiter to create a compiled template.
$ compiled = template ( ' hello <%= user %>! ' )
$ compiled ([ ' user ' => ' fred ' ])
// => 'hello fred!'
// Use the HTML "escape" delimiter to escape data property values.
$ compiled = template ( ' <b><%- value %></b> ' )
$ compiled ([ ' value ' => ' <script> ' ])
// => '<b><script></b>'
// Use the "evaluate" delimiter to execute JavaScript and generate HTML.
$ compiled = template ( ' <% foreach($users as $user) { %><li><%- user %></li><% }%> ' )
$ compiled ([ ' users ' => [ ' fred ' , ' barney ' ] ])
// => '<li>fred</li><li>barney</li>'
// Use the internal `print` function in "evaluate" delimiters.
$ compiled = template ( ' <% print("hello " + $user)%>! ' )
$ compiled ([ ' user ' => ' barney ' ])
// => 'hello barney!'
// Use backslashes to treat delimiters as plain text.
$ compiled = template ( ' <%= " \ <%- value % \ >" %> ' )
$ compiled ([ ' value ' => ' ignored ' ])
// => '<%- value %>'
// Use the `imports` option to import functions or classes with aliases.
$ text = ' <% all($users, function($user) { %><li><%- user %></li><% })%> '
$ compiled = template( $ text , { ' imports ' : { ' _each ' : ' all ' } })
$ compiled ([ ' users ' => [ ' fred ' , ' barney ' ] ])
// => '<li>fred</li><li>barney</li>'
// Use custom template delimiters.
_:: $ templateSettings [ ' interpolate ' ] = ' {{([sS]+?)}} '
$ compiled = template ( ' hello {{ user }}! ' )
$ compiled ([ ' user ' => ' mustache ' ])
// => 'hello mustache!'
// Use the `source` property to access the compiled source of the template
template ( $ mainText )-> source ;
整體將string
轉換為較低的情況
論點:
@param字串$字串轉換字串。
返回:
@return字串傳回下殼字串。
例子:
<?php
use function _ toLower ;
toLower ( ' --Foo-Bar-- ' )
// => '--foo-bar--'
toLower ( ' fooBar ' )
// => 'foobar'
toLower ( ' __FOO_BAR__ ' )
// => '__foo_bar__'
整體上將string
轉換為上情況
論點:
@param字串$字串轉換字串。
返回:
@return字串傳回上層殼字串。
例子:
<?php
use function _ toUpper ;
toUpper ( ' --foo-bar-- ' )
// => '--FOO-BAR--'
toUpper ( ' fooBar ' )
// => 'FOOBAR'
toUpper ( ' __foo_bar__ ' )
// => '__FOO_BAR__'
從string
中刪除領先和尾隨的空格或指定字元。
論點:
@param字串$字串將字串到修剪。
@param字串$ char將字元符為修剪。
返回:
@return字串傳回修剪的字串。
例子:
<?php
use function _ trim ;
trim ( ' abc ' )
// => 'abc'
trim ( ' -_-abc-_- ' , ' _- ' )
// => 'abc'
從string
中刪除尾隨的空格或指定字元。
論點:
@param字串$字串將字串到修剪。
@param字串$ char將字元符為修剪。
返回:
@return字串傳回修剪的字串。
例子:
<?php
use function _ trimEnd ;
trimEnd ( ' abc ' )
// => ' abc'
trimEnd ( ' -_-abc-_- ' , ' _- ' )
// => '-_-abc'
從string
中刪除領先的空格或指定字元。
論點:
@param字串$字串將字串到修剪。
@param字串$ char將字元符為修剪。
返回:
@return字串傳回修剪的字串。
例子:
<?php
use function _ trimStart ;
trimStart ( ' abc ' )
// => 'abc '
trimStart ( ' -_-abc-_- ' , ' _- ' )
// => 'abc-_-'
如果字串比給定的最大字串長度長,則截斷string
。截斷的字串的最後一個字元被預設為“ ...”的遺漏字串替換。
長度= 30最大字串長度。遺漏='...'省略文字的字串。分離器分離器圖案要截斷。
論點:
@param字串$字串將字串截斷。
@param數組$選項選項物件。
返回:
@return字串傳回截斷的字串。
例子:
<?php
use function _ truncate ;
truncate ( ' hi-diddly-ho there, neighborino ' )
// => 'hi-diddly-ho there, neighbo...'
truncate ( ' hi-diddly-ho there, neighborino ' , [
' length ' => 24 ,
' separator ' => ' '
])
// => 'hi-diddly-ho there,...'
truncate ( ' hi-diddly-ho there, neighborino ' , [
' length ' => 24 ,
' separator ' => ' /,? +/ '
])
// => 'hi-diddly-ho there...'
truncate ( ' hi-diddly-ho there, neighborino ' , [
' omission ' => ' [...] '
])
// => 'hi-diddly-ho there, neig [...]'
escape
的倒數此方法轉換了HTML實體&
, <
, >
, "
和'
在其對應字元的string
中。
論點:
@param字串$字串將字串到unescape。
返回:
@return字串回傳UneScaped String。
例子:
<?php
use function _ unescape ;
unescape ( ' fred, barney, & pebbles ' )
// => 'fred, barney, & pebbles'
將string
作為空間分開的單字轉換為上情況。
論點:
@param字串$字串轉換字串。
返回:
@return字串返回上層cased string.s
例子:
<?php
use function _ upperCase ;
upperCase ( ' --foo-bar ' )
// => 'FOO BAR'
upperCase ( ' fooBar ' )
// => 'FOO BAR'
upperCase ( ' __foo_bar__ ' )
// => 'FOO BAR'
將string
的第一個字元轉換為上情況。
論點:
@param字串$字串轉換字串。
返回:
@return字串傳回轉換的字串。
例子:
<?php
use function _ upperFirst ;
upperFirst ( ' fred ' )
// => 'Fred'
upperFirst ( ' FRED ' )
// => 'FRED'
將string
分成多種單字。
論點:
@param字串$字串的字串要檢查。
@param字串$模式符合單字的模式。
返回:
@return陣列傳回string
的單字。
例子:
<?php
use function _ words ;
words ( ' fred, barney, & pebbles ' )
// => ['fred', 'barney', 'pebbles']
words ( ' fred, barney, & pebbles ' , ' /[^, ]+/g ' )
// => ['fred', 'barney', '&', 'pebbles']
嘗試呼叫func
,傳回結果或捕獲的錯誤物件。呼叫 func 時,將向func
提供任何其他參數。
s論點:
@param callable $ func嘗試嘗試。
@param數組<int,混合> $ arg arg and func
的參數。
返回:
@return(混合| throwable)傳回func
結果或錯誤物件。
例子:
<?php
use function _ attempt ;
// Avoid throwing errors for invalid PDO data source.
$ elements = attempt ( function () {
new PDO ( null );
});
if ( isError ( $ elements )) {
$ elements = [];
}
檢查值以確定是否應傳回其位置預設值。如果值為NAN或NULL,則傳回預設值。
論點:
@Param混合$值任何值。
@param混合$ defaultValue值回傳$ value是null或nan
返回:
@return混合回傳value
。
例子:
<?php
use function _ defaultTo ;
$ a = null ;
defaultTo ( $ a , " default " );
// => "default"
$ a = " x " ;
defaultTo ( $ a , " default " );
// => "x"
此方法傳回它收到的第一個參數。
論點:
@Param混合$值任何值。
返回:
@return混合回傳value
。
例子:
<?php
use function _ identity ;
$ object = [ ' a ' => 1 ];
identity ( $ object ) === $ object ;
// => true
建立一個函數,該函數在給定物件的path
處傳回值。
論點:
@param(array | string)$路徑要獲得的屬性。
返回:
@return callable傳回新的存取函數。
例子:
<?php
use function _ property ;
$ objects = [
[ ' a ' => [ ' b ' => 2 ] ],
[ ' a ' => [ ' b ' => 1 ] ]
];
map ( $ objects , property ( ' a.b ' ));
// => [2, 1]
map ( sortBy ( $ objects , property ([ ' a ' , ' b ' ])), ' a.b ' );
// => [1, 2]