wittiws / splash
dev-master
2019-05-30 17:23 UTC
Requires
- php: >=5.3.3
This package is auto-updated.
Last update: 2020-02-27 17:23:01 UTC
README
已测试PHP 5.3/5.4/5.5/HHVM
Splash 是一种链式(因此简洁)的方式与 SPL 迭代器交互。
// Basic example. \Splash\Splash::mount(); foreach (splash(__DIR__)->recursiveDirectory()->recursiveIterator()->regex($match) as $path) { }
Splash自定义迭代器
Splash附带了一些未包含在 SPL 中的迭代器。目前包括:
InverseRegexIterator
这是一个简单的迭代器,它排除任何与正则表达式匹配的项。
$dat = splash('a', 'b')->inverseRegex('/a/')->toArray(); // $dat == array('b')
SliceIterator
这是一个简单的迭代器,将结果缩小到类似于 array_slice() 的切片数组。
$dat = splash('a', 'b', 'c')->slice(1, 1)->toArray(); // $dat == array('b')
CallbackIterator
这是一个迭代器,对每个元素执行回调,并允许回调返回 TRUE 保留值(类似于 CallbackFilterIterator),或者直接操作新迭代器。直接前进选项允许通过回调分割值。
/** * Callback for CallbackIterator * * @param $current Current item's value * @param $key Current item's key * @param $iterator Iterator being traversed * @param $new_iterator Iterator being built (to allow item splits) * @return boolean TRUE to auto-add the current item to $new_iterator, FALSE otherwise */ function my_callback(&$current, $key, $iterator, &$new_iterator) { $current = 'a'; return TRUE; } $dat = splash('a', 'b', 'c')->callback('my_callback')->toArray(); // $dat == array('a', 'a', 'a')