Prendere la seguente funzione per esempio:funzione PHP come parametri di default
private function connect($method, $target = $this->_config->db()) {
try {
if (!($this->_pointer = @fopen($target, $method)))
throw new Exception("Unable to connect to database");
} catch (Exception $e) {
echo $e->getMessage();
}
}
Come potete vedere ho inserito la funzione $this->_config->db()
nel parametro $target
come valore di default. Capisco che questa non sia la sintassi corretta e sto solo cercando di spiegare il mio scopo.
$this->_config->db()
è una funzione getter.
Ora so che posso utilizzare una funzione anonima e chiamarla tramite $target
in seguito, ma desidero che lo $target
accetti anche i valori di stringa diretta.
Come potrei assegnargli un valore predefinito di quello che viene restituito da $this->_config->db()
ed essere ancora in grado di sovrascriverlo con un valore stringa?
Questo è quello che ho usato e il metodo meno invadente fornito, grazie. 'if (is_null ($ target)) $ target = $ this -> _ config-> db();' –