2015-11-02 91 views
1

这是我收到的错误消息:我想知道是否有人可以解释这个错误意味着什么,以及下面的代码将如何解决。只有变量应该通过引用错误传递

错误信息:(381线是$学期线)只有变量应该通过线381引用传递

  <?php // Student Fee section 
     if ($user->isStudentFeeDue()): 
      $semester = array_shift(array_slice($courses, 0, 1))->getSemester();  
      $studentfee = new UserLocationBasedStudentFee($semester, $user); 
      $purchase->addItem($studentfee); 
      ?> 
      <div style="border-top: 2px solid rgb(0, 0, 0); padding: 16px 6px;"> 
       <label> 
        <?php echo $studentfee->getDescription(); ?> 
        (<?php echo money_format(CBV\MONEY_FORMAT_COMMON, $studentfee->getCost()); ?>) 
       </label> 
      </div> 
     <?php endif; ?> 

回答

1

array_shift是作用于引用一个函数。

如果你通过一个数组,你实际上会编辑该变量本身。 如果你传入的东西不是一个变量,那么你没有任何进一步的参考,因为你通过了什么,因此错误。 事实上,这个函数被引用调用时,如果没有与变量一起使用,它就没有任何作用,这就是你被警告的内容。

解决方法很简单,强似

array_slice($courses, 0, 1) 

直接...

首先创建一个变量 $b = array_slice($courses, 0, 1);

,然后传递:

$semester = array_shift($b)->getSemester(); 
+0

谢谢 - 完美的答案。 – JakeTenz

相关问题