我使用简单的HTML DOM并从网站中提取两个链接。使用函数中创建的变量
function get_links($website) {
$html = file_get_html($website);
$img = $html->find('div.entry img',0)->src;
$url = $html->find('div.entry a',0)->href;}
如何在运行函数get_links后使用$ img和$ url?
我使用简单的HTML DOM并从网站中提取两个链接。使用函数中创建的变量
function get_links($website) {
$html = file_get_html($website);
$img = $html->find('div.entry img',0)->src;
$url = $html->find('div.entry a',0)->href;}
如何在运行函数get_links后使用$ img和$ url?
您有两种选择。首先是要回报他们:
function get_links($website) {
$html = file_get_html($website);
$img = $html->find('div.entry img',0)->src;
$url = $html->find('div.entry a',0)->href;
return array('img' => $img, 'url' => $url);
}
只能从函数返回一个值,所以你必须做出一个数组。
另一种选择是通过引用接受参数:
function get_links($website, &$img, &$url) {
$html = file_get_html($website);
$img = $html->find('div.entry img',0)->src;
$url = $html->find('div.entry a',0)->href;
}
当你调用该方法,您可以提供两个值,其中将包含值:
get_links($someurl, $image, $url);
echo $image; // echoes the image source
echo $url; // echoes the url
我预计第一技术(数组)会更简单。
您还有其他选择:你可以把$img
和$url
全球。这是一个坏主意。您也可以将get_links
定义为匿名函数,并使用use
关键字,但我认为这不太有用。你也可以封装函数的对象:
class Links {
public $url;
public $img;
function __construct($website)
$html = file_get_html($website);
$this->img = $html->find('div.entry img',0)->src;
$this->url = $html->find('div.entry a',0)->href;
}
}
// elsewhere
$links = new Links($someurl);
$links->img;
$links->url;
}
您可以返回他们作为一个数组:
return array(
'img' => $img,
'url' => $url
);
有不同的方式:
考虑更适合您的目标的解决方案。
您的功能只是部分完成。您需要将这些值返回给调用原点以供在那里使用。当从函数返回多个值时,我更愿意将它作为关联数组返回。
function get_links($website) {
$html = file_get_html($website);
$img = $html->find('div.entry img',0)->src;
$url = $html->find('div.entry a',0)->href;}
$results = array('img' => $img, 'url' => $url);
return $results;
}