首页 » PHP » 正文

PHP-Only variables should be passed by reference错误

Only variables should be passed by reference,即该方法的变量(variables )只能通过引用(reference)来传递。一般是传参导致的错误。

常见情况,直接拿explode()的结果去传入给某个方法,而这个方法的变量(variables )只能通过引用(reference)来传递。

 例如, 

$date = '2018-04-17';
$day  = array_pop(explode('-',$date));

这里explode()返回的是一个数组(array)的值(即,具体的内容),而array_pop()的变量要求是一个引用(reference)。

具体见文档 mixed array_pop ( array &$array )。

类似的array_shift(),end(),prev()等等都会报以上的错误。 

【解决办法】:
将explode()返回的数组先赋值给一个变量,再将变量传入该方法即可。 

例如, 

 $date = '2018-04-17';
 $arrDate = explode('-',$date);
 $day  = array_pop($arrDate);

发表评论