PHP-Only variables should be passed by reference錯(cuò)誤
2019-02-08 11:52:23
10668
Only variables should be passed by reference,即該方法的變量(variables )只能通過引用(reference)來傳遞。一般是傳參導(dǎo)致的錯(cuò)誤。
常見情況,直接拿explode()的結(jié)果去傳入給某個(gè)方法,而這個(gè)方法的變量(variables )只能通過引用(reference)來傳遞。
例如,
$date = '2019-01-11';
$day = array_pop(explode('-',$date));
這里explode()返回的是一個(gè)數(shù)組(array)的值(即,具體的內(nèi)容),而array_pop()的變量要求是一個(gè)引用(reference)。
具體見文檔 mixed array_pop ( array &$array )。
類似的array_shift(),end(),prev()等等都會(huì)報(bào)以上的錯(cuò)誤。
【解決辦法】:
將explode()返回的數(shù)組先賦值給一個(gè)變量,再將變量傳入該方法即可。
例如,
$date = '2019-01-11';
$arrDate = explode('-',$date);
$day = array_pop($arrDate);