为什么我需要“&”?

问题描述:

查看网络上有关PHP工厂模式的示例。为什么我需要“&”?

在行$kind =& Vehicle::category($wheel);,我为什么要使用&

代码:

<?php 
    class Vehicle { 

     function category($wheel = 0) { 
      if ($wheel == 2) { 
       return "Motor"; 
      } elseif($wheel == 4) { 
       return "Car"; 
      } 
     } 
    } 

    class Spec { 

     var $wheel = ''; 

     function Spec($wheel) { 
      $this->wheel = $wheel; 
     } 

     function name() { 
      $wheel = $this->wheel; 
       return Vehicle::category($wheel); 
     } 

     function brand() { 
      $wheel = $this->wheel; 
       $kind =& Vehicle::category($wheel); 
      if ($kind == "Motor") { 
       return array('Harley','Honda'); 
      } elseif($kind = "Car") { 
       return array('Nisan','Opel'); 
      } 
     } 
    } 

    $kind = new Spec(2); 
    echo "Kind: ".$kind->name(); 
    echo "<br>"; 
    echo "Brand: " . implode(",", $kind->brand()); 
?> 
+0

警告:行'} ELSEIF($ KIND = “汽车”){''需要==',而不是'='。 – TaZ

+0

我没有看到,直到你发布Thx。 –

这是没用在这里,因为例子越来越以一个恒定的参考,但references也有其用途,当你想“看”,可能改变一个值,你希望你的变量随之改变。