2012-05-14 31 views
12

Sarebbe possibile specificare un valore di argomento predefinito quando l'argomento è una chiusura PHP? Come:Chiusura PHP come argomento di funzione opzionale

public function getCollection($filter = function($e) { return $e; }) 
{ 
    // Stuff 
} 

Mi manca qualcosa (forse una sintassi diversa?) O non è possibile a tutti? Naturalmente so che posso fare:

public function getCollection($filter = null) 
{ 
    $filter = is_callable($filter) ? $filter : function($e) { return $e; }; 
    // Stuff 
} 

(NOTA: non ho la prova il codice qui sopra)

risposta

14

Default arguments non può che essere "argomenti scalari", array, o NULL.

"scalar values" in PHP sono numeri, stringhe e booleani.

Se si desidera che una funzione sia un argomento predefinito, è necessario utilizzare il 2o modo, il 1 ° è un errore di sintassi.

+0

Oh, capisco. Quindi la mia domanda è inutile. Grazie comunque. – gremo

+1

@Gremo: Non è una domanda inutile, è una buona domanda. Altri potrebbero chiedersi la stessa cosa :-) –

+1

Concordato. Sono un dev di PHP, ma ho comunque trovato questo interessante. – Madbreaks

Problemi correlati