콜백 함수에 매개변수를 전달하는 방법


매개변수 전달 방법

use을 사용하여 모든 콜백 함수에 매개변수를 전달할 수 있습니다.

참고: 더 높은 버전의 PHP만 이 구문을 지원합니다. 오류가 보고되면 설치된 PHP 버전이 너무 낮다는 의미입니다.

<?php
require 'QueryList/vendor/autoload.php';
use QL\QueryList;
$html =<<<STR
    <div id="demo">
        xxx
        <a href="/yyy">链接一</a>
        <a href="/zzz">链接二</a>
    </div>
STR;
$baseUrl = 'http://xxx.com';
//获取id为demo的元素下的最后一个a链接的链接和文本
//并补全相对链接
//方法一
$data = QueryList::Query($html,array(
        'link' => array('#demo a:last','href','',function($content) use($baseUrl){
            return $baseUrl.$content;
        }),
        'name' => array('#demo a:last','text') 
    ))->data;
print_r($data);
//方法二
$data = QueryList::Query($html,array(
        'link' => array('#demo a:last','href'),
        'name' => array('#demo a:last','text') 
    ))->getData(function($item) use($baseUrl){
    $item['link'] = $baseUrl.$item['link'];
    return $item;
});
print_r($data);
/**
 结果
 Array
(
    [0] => Array
        (
            [link] => http://xxx.com/zzz
            [name] => 链接二
        )
)
 */