Ho una funzione che ha tre parametri, chiamati key
, value
e attribute
.
Il parametro attribute
può essere vuoto o avere due argomenti. Il codice di funzione sottostante è abbreviato (privo di convalida degli argomenti)
public function Set_ContentUsage($Key, $Value, $Attribute=NULL)
{
$this -> ContentUsage = array();
$Attribute = array_slice(func_get_args(), 2);
/* validation of arguments */
$this -> ContentUsage['key'] = $Key;
$this -> ContentUsage['value'] = $Value;
if(count($Attribute) == 1)
{
$this -> ContentUsage['keyattr'] = ($Key == MarC::MARC_OPTION_ATTRVAL) ? $Attribute[0] : FALSE;
$this -> ContentUsage['valueattr'] = ($Value == MarC::MARC_OPTION_ATTRVAL) ? $Attribute[0] : FALSE;
}
else
{
$this -> ContentUsage['keyattr'] = $Attribute[0];
$this -> ContentUsage['valueattr'] = $Attribute[1];
}
}
La mia domanda è come migliorare questa funzione per ottenere più argomenti per il parametro $Attribute
senza $Attribute = array_slice(func_get_args(), 2);
?
Ho scoperto che se ho eliminato solo
$Attribute = array_slice(func_get_args(), 2);
porta al malfunzionamento del codice di riposo.