2013-07-23 19 views
5

semplice domanda PHP:funzioni di nidificazione in PHP

Perché fa questo lavoro,

$exclude_exts = array('js', 'css',); 
$filename = "test.css"; 
$ext = explode('.',$filename); 
$is_excluded = in_array(strtolower(array_pop($ext)), $exclude_exts); 

ma questo non lo fa.

$exclude_exts = array('js', 'css',); 
$filename = "test.css"; 
$is_excluded = in_array(strtolower(array_pop(explode('.',$filename))), $exclude_exts); 

Modifica: Entrambi funzionano in una versione precedente di PHP (ho dimenticato quale versione).

risposta

10

Perché array_pop richiede un riferimento, poiché altera la matrice in posizione. Quando si passa il valore restituito di explode, non vi è alcuna variabile a cui fare riferimento.

+0

Perché ha funzionato nelle versioni precedenti di PHP? – Ameer

+0

+1 per la risposta perfetta :) – dreamweiver

+0

@Ameer Non ha funzionato nelle versioni precedenti di PHP. Non ha mai funzionato. –