我使用簡單的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;
}