вроде банальная задачка, а не могу сообразить.
Код конечно не рабочий но смысл понять можно, хочу в качестве параметра одного метода передать имя другого. Ну или альтернативные варианты рассмотреть.
class GlobalClass
{
public function itemsModifer($data, $modifer())
{
if(count($data))
{
foreach($data as $key => $value)
{
$data[$key] = $modifer($value);
}
}
return $data;
}
public function Modifer1($data)
{
$data['x'] = !empty($data['x']) ? $data['x'] : 'пусто';
$data['y'] = !empty($data['y']) ? $data['y'] : 'пусто';
return $data;
}
public function Modifer2($data)
{
$data['z'] = !empty($data['z']) ? $data['z'] : 'пусто';
$data['s'] = !empty($data['s']) ? $data['s'] : 'пусто';
return $data;
}
}
$global = new GlobalClass();
$data1 = array(
array('x' => 1 , 'y' => 2),
array('x' => 3 , 'y' => 4)
);
$data2 = array(
array('z' => 7 , 's' => 8),
array('z' => 9 , 's' => 0)
);
$list1 = $global->itemsModifer($data1, $global->Modifer1);
$list2 = $global->itemsModifer($data2, $global->Modifer2);