向回调函数中传参数


传参方法

可以使用use来向任何回调函数中传参数。

注意:只有高版本PHP才支持此语法,如果报错就说明你装的PHP版本太低。

示例

  1. <?php
  2. require 'QueryList/vendor/autoload.php';
  3. use QL\QueryList;
  4. $html =<<<STR
  5. <div id="demo">
  6. xxx
  7. <a href="/yyy">链接一</a>
  8. <a href="/zzz">链接二</a>
  9. </div>
  10. STR;
  11. $baseUrl = 'http://xxx.com';
  12. //获取id为demo的元素下的最后一个a链接的链接和文本
  13. //并补全相对链接
  14. //方法一
  15. $data = QueryList::Query($html,array(
  16. 'link' => array('#demo a:last','href','',function($content) use($baseUrl){
  17. return $baseUrl.$content;
  18. }),
  19. 'name' => array('#demo a:last','text')
  20. ))->data;
  21. print_r($data);
  22. //方法二
  23. $data = QueryList::Query($html,array(
  24. 'link' => array('#demo a:last','href'),
  25. 'name' => array('#demo a:last','text')
  26. ))->getData(function($item) use($baseUrl){
  27. $item['link'] = $baseUrl.$item['link'];
  28. return $item;
  29. });
  30. print_r($data);
  31. /**
  32. 结果
  33. Array
  34. (
  35. [0] => Array
  36. (
  37. [link] => http://xxx.com/zzz
  38. [name] => 链接二
  39. )
  40. )
  41. */