Вы можете позволить первой функции вернуть массив:
function first() {
$values = array();
foreach($list as $item ) {
$values['variable_' . $item->ID] = $item->title;
// gives $varible_10 = 'some text'; (10 can be replaced with any number)
}
$values['ordinary_variable'] = 'something';
return $values;
}
и затем:
function second() {
$values = first();
foreach($list as $item ) {
$values['variable_' . $item->ID];
// getting identical value from first() function
}
$values['ordinary_variable'];
}
или передать его в качестве параметра:
second(first());
Я бы посоветовал против global
, так как это приводит к побочным эффектам и усложняет поддержку / отладку кода.