У вас есть два варианта.Первый - вернуть их:
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;
}